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

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


当前回答

请检查UITapGestureRecognizer。 在我的例子中,tapgesture被添加到tableview所在的视图中,这消耗了UITableview的用户交互,比如didselect。 禁用视图的tapgesture后,触发了didselect委托。

其他回答

你必须检查这个 选择必须是单一选择,编辑必须是在编辑过程中没有选择 你也可以改变uttableviewcell属性中的设置 在表格视图单元格中编辑 样式必须是自定义的,标识符必须是Rid section为none

我在我的表视图上放了一个UITapGestureRecognizer来消除键盘,这阻止了didSelectRowAtIndexPath:被调用。希望它能帮助到别人。

我知道是旧的,问题已经解决了,但有类似的问题,我认为问题是与我的自定义UITableViewCell,但解决方案是完全不同的-我重新启动XCode:),然后工作正常!就像Windows一样:)

确保你实现了tableView:didSelectRowAtIndexPath而不是tableView:didDeSelectRowAtIndexPath

这让我在很多场合!!

对于Xcode 6.4, Swift 1.2。在IB中选择“标签”被改变了。我不知道是怎么改变的,为什么改变。将其设置为“单一选择”使我的表格视图单元格再次可选。