我正在编写一个带有tab视图中的表视图的iOS应用程序。在我的UITableViewController中,我实现了-tableView:didSelectRowAtIndexPath:,但当我在运行时选择一行时,该方法没有被调用。表格视图正在被填充,所以我知道控制器中的其他tableView方法正在被调用。

有没有人知道我到底搞砸了什么才让这一切发生的?


当前回答

我重复了之前所有的答案,但没有一个对我有帮助。经过反复试验,我找到了一个不同的解决方案。我有一个UIImageView覆盖整个单元格(作为背景)。默认情况下,UIImageView禁用用户交互。通过启用imageviews用户交互委托方法-didSelectRowAtIndexPath:再次被调用。 如。

cell.imgView.userInteractionEnabled = YES;

其他回答

对此发表我的意见。

我有一个自定义UITableViewCell,有一个按钮覆盖整个单元格,所以当触摸发生时,按钮被选中,而不是单元格。

要么删除按钮,要么在我的情况下,我将按钮上的User interaction Enable设置为false,这样单元格就被选中了。

在我的情况下,didSelctRowAtIndexPath不调用是因为我在tableView的Selection属性中没有选择,设置为单一选择解决了我的问题

您可能犯的另一个错误(就像我犯的那样):如果在单元格中设置segue,则不会调用didSelectRowAtIndexPath。你应该在视图控制器中设置segue。

我有个电话要打。userInteractionEnabled隐藏在一些定制表代码中。

大多数虫子都很蠢,不是吗?

听起来好像这个类不是表格视图的UITableViewDelegate,尽管UITableViewController应该自动设置。

你是否有机会将委托重置为其他类?