如何以编程方式选择UITableView行
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)
被执行?selectRowAtIndexPath只会突出显示该行.
我的应用程序使用一个UITableView带有UINavigationController显示当表中的行挖一个更详细的视图-基本钻取程序.
当我在一排水龙头,它被突出显示,但委托方法tableView:willSelectRowAtIndexPath:或tableView:didSelectRowAtIndexPath:不叫(认证使用调试器).
现在这里是奇怪的部分:
应用程序中还有一些其他表视图(它们没有向下钻取),并且它们都没有出现问题.
如果我迅速并反复挖掘排,多次尝试后(10 - 20是正常的),tableView:willSelectRowAtIndexPath:和tableView:didSelectRowAtIndexPath: 被称为和处理继续正常进行.
问题只发生在运行iOS 6的(任何,实际上)iPad上.它适用于运行iOS 5的iPad,或运行任何iOS版本6的任何iPhone.它也适用于使用iOS 5或6的iPad模拟器.
因此,在调用委托方法之前,似乎有些东西正在接收.但是什么?
我没有使用任何UITapGestureRecognizer,所以这不是问题.我没有使用多个UITableViewControllers表,所以这也不是问题.
我想在tableView中选择一个单元格.它使用此代码正常工作,但一旦以编程方式选择它就不会触发didSelectRowAtIndexPath事件.我怎么能触发它?
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.mainTable selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
Run Code Online (Sandbox Code Playgroud)