Как программно выбрать строку UITableView
, чтобы выполнить
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
? selectRowAtIndexPath
только выделит строку.
Вызов этого метода не приводит к получению делегатом сообщения
tableView:willSelectRowAtIndexPath:
илиtableView:didSelectRowAtIndexPath:
, а также не посылаетUITableViewSelectionDidChangeNotification
уведомления наблюдателям.
Я бы сделал:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self doSomethingWithRowAtIndexPath:indexPath];
}
А затем, откуда вы хотите позвонить selectRowAtIndexPath, вы вместо этого вызываете doSomethingWithRowAtIndexPath. Кроме того, вы можете дополнительно вызвать selectRowAtIndexPath, если хотите, чтобы произошла обратная связь с пользовательским интерфейсом.
UiableView's SelectRowatindexpath: Animated: ScrollPosition: должен сделать трюк.
Просто пройти UiableViewsCrollPositionnone
для прокрутки, и пользователь не увидит никакого движения.
Вы также должны иметь возможность вручную запустить действие:
[ThetableView.delegate TableView: thetableview dadelectrowatindexpath: indexpath]
После вас SELECTROWATINDEXPATH: Animated: ScrollPosition:
Так что выделение происходит, а также любая связанная с ними.