Как сказал Яанус:
Вызов этого метода (-selectRowAtIndexPath: animated: 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:0 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)