Подтвердить что ты не робот

Выбрать программную строку uitableview

Я много читал об этом аргументе, я протестировал этот пример, который работает: пример исходного кода. но это не использует раскадровки (я не знаю, является ли это причиной того, что мой проект не работает) я сделал другой проект с помощью раскадровки, такая же последовательность инструкций не работает...

-(void)viewDidAppear:(BOOL)animated{
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:0];
    [firstController.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
    [firstTable.delegate tableView:firstTable didSelectRowAtIndexPath:indexPath];
}

вот мой проект, тот же самый из предыдущей ссылки, добавляя только viewDidAppear мой неработающий проект может кто-нибудь сказать мне, что случилось? спасибо

4b9b3361

Ответ 1

Я попытался изучить ваш код, загружающий проект. Проблема в том, что firstController.tableView равен нулю.
Так исправить:

[firstTable selectRowAtIndexPath:indexPath 
                        animated:NO 
                  scrollPosition:UITableViewScrollPositionNone];

Или назначьте firstController.tableView виду таблицы.

Ответ 2

- (void)viewDidLoad {
    [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];
}

Если вы хотите получить обратный вызов от делегата:

if ([self.tableView.delegate respondsToSelector:@selector(tableView:didSelectRowAtIndexPath:)]) {
    [self.tableView.delegate tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
}