我正在编写一个带有tab视图中的表视图的iOS应用程序。在我的UITableViewController中,我实现了-tableView:didSelectRowAtIndexPath:,但当我在运行时选择一行时,该方法没有被调用。表格视图正在被填充,所以我知道控制器中的其他tableView方法正在被调用。
有没有人知道我到底搞砸了什么才让这一切发生的?
我正在编写一个带有tab视图中的表视图的iOS应用程序。在我的UITableViewController中,我实现了-tableView:didSelectRowAtIndexPath:,但当我在运行时选择一行时,该方法没有被调用。表格视图正在被填充,所以我知道控制器中的其他tableView方法正在被调用。
有没有人知道我到底搞砸了什么才让这一切发生的?
当前回答
这些答案对我都没用。大约一个小时后,我发现了一些非常阴险的事情:
我在另一个表格视图的单元格中有一个表格视图。我决定创建一个包含内部表视图的封闭视图。我将这个视图命名为contentView并在xib中连接它。
UITableViewCell已经有一个contentView并对它做了一些奇怪的事情。当我将属性重命名为mainContentView并将视图重新连接到这个重命名的属性时,问题自行解决了。
其他回答
如果你看了这个,那么问题还是没有解决。
我有自定义单元格,其中复选框“用户交互启用”是禁用的。所以,我只要打开它。祝你好运。
听起来好像这个类不是表格视图的UITableViewDelegate,尽管UITableViewController应该自动设置。
你是否有机会将委托重置为其他类?
在这种情况下,我遇到了两件事。
你可能忘了实现UITableViewDelegate协议,或者在你的类和你的表视图之间没有委托出口。 你可能有一个UIView在你的行里面,它是一个第一响应器,拿走你的点击。比如UIButton或类似的东西。
记住在viewDidLoad方法中设置数据源和委托,如下所示:
[self.tableView setDelegate:self];
[self.tableView setDataSource:self];
我有个电话要打。userInteractionEnabled隐藏在一些定制表代码中。
大多数虫子都很蠢,不是吗?