Как уже отмечалось, можно программно выбрать ячейку с помощью этого метода:
[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
Тем не менее, должен быть осторожным , чтобы не вызвать этот метод слишком рано.
В первый раз, что контроллер, содержащий сказал tableView
является initialized
, самым ранним, что вы должны вызвать этот метод в viewDidAppear:
.
Таким образом, вы должны сделать что-то вроде этого:
- (void)viewDidAppear:(BOOL)animated
{
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; // set to whatever you want to be selected first
[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
}
Если вы попытаетесь положить этот вызов в viewDidLoad
, viewWillAppear:
, или любые другие вызовы рано вид на протяжении жизненного цикла, то, скорее всего, не работают или имеют нечетные результаты (например, как прокрутка в правильное положение, но не выбор ячейки).
Этот столбец (http://stackoverflow.com/questions/1845773/how-to-initially-select-a-row-in-uitableview) может помочь. – petert