Выбрать программную строку 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
мой неработающий проект
может кто-нибудь сказать мне, что случилось?
спасибо
Ответы
Ответ 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]];
}