以编程方式选择行时未触发didSelectRowAtIndexPath事件

Jau*_*me 11 cocoa-touch objective-c uitableview

我想在tableView中选择一个单元格.它使用此代码正常工作,但一旦以编程方式选择它就不会触发didSelectRowAtIndexPath事件.我怎么能触发它?

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.mainTable selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
Run Code Online (Sandbox Code Playgroud)

Gui*_*ume 28

它按照记录的方式工作:

调用此方法不会导致委托接收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];
Run Code Online (Sandbox Code Playgroud)