我想在tableView中选择一个单元格。它使用此代码正常工作,但一旦以编程方式选择,它就不会触发didSelectRowAtIndexPath
事件。我怎么能触发它?
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.mainTable selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
答案 0 :(得分:27)
它的工作原理如下:
调用此方法不会导致代理收到
tableView:willSelectRowAtIndexPath:
或tableView:didSelectRowAtIndexPath:
消息,也不会向观察者发送UITableViewSelectionDidChangeNotification
通知。
选择您的手机后自行调用:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self tableView:self.mainTable willSelectRowAtIndexPath:indexPath];
[self.mainTable selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
[self tableView:self.mainTable didSelectRowAtIndexPath:indexPath];