Как Jaanus сказал:
Вызов этого (-selectRowAtIndexPath: анимированные: метод scrollPosition :) не вызывает делегат получать Tableview: willSelectRowAtIndexPath: или tableView: didSelectRowAtIndexPath: сообщение и не отправит UITableViewSelectionDidChangeNotification уведомления наблюдателям.
Для этого вам нужно просто позвонить по методу delegate
.
Например:
Swift 3 версии:
let indexPath = IndexPath(row: 0, section: 0);
self.tableView.selectRow(at: indexPath, animated: false, scrollPosition: UITableViewScrollPosition.none)
self.tableView(self.tableView, didSelectRowAt: indexPath)
ObjectiveC версия:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:0];
[self.tableView selectRowAtIndexPath:indexPath
animated:YES
scrollPosition:UITableViewScrollPositionNone];
[self tableView:self.tableView didSelectRowAtIndexPath:indexPath];
Swift 2.3 версия:
let indexPath = NSIndexPath(forRow: 0, inSection: 0);
self.tableView.selectRowAtIndexPath(indexPath, animated: false, scrollPosition: UITableViewScrollPosition.None)
self.tableView(self.tableView, didSelectRowAtIndexPath: indexPath)
Я столкнулся с одной и той же проблемой и просто воспользовался ссылкой: http://stackoverflow.com/questions/5324501/select-tableviews-row-from-an-another-view Я надеюсь, что это будет полезно для вас. – michael