UISplitViewController: загрузить первую строку в TableView - PullRequest
0 голосов
/ 05 января 2012

У меня есть UISplitViewController с UITableView слева и пользовательским представлением в качестве подробного представления.Когда UISplitViewController загружен, я бы хотел, чтобы первый элемент в TableView был выбран и отображен в подробном представлении.В настоящее время я пытаюсь это сделать в TableView viewDidLoad:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
}

Это почти работает, за исключением того, что текущая строка не выделяется, как при выборе пользователем.Есть ли лучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 05 января 2012

Как насчет использования [UITableView selectRowAtIndexPath:animated:scrollPosition:]? Как то так.

[self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionTop]

didSelectRow... является методом обратного вызова и не предназначен для использования таким образом.

1 голос
/ 05 января 2012

Вы не должны звонить didSelectRowAtIndexPath:.Вы намеревались использовать метод selectRowAtIndexPath:animated:scrollPosition:

. Можно использовать отдельный метод в качестве способа по умолчанию для отображения чего-либо в подробном представлении.Например - (void)displayObject:(NSObject *)objectToDisplay.Это может быть то, что вы вызываете в вашем didSelectRowAtIndexPath, но, переместив фактическую логику за пределы этого метода, вы сможете вызывать в других местах, таких как viewDidLoad или viewWillAppear.Там вы также можете выяснить, какой объект вы хотите отобразить (если вы имеете дело с массивом, который будет простым), и отобразить его как таковой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...