我有一个UITableViewController,其中一些静态单元格使用容器视图嵌入到UIViewController中。在这个UITableViewController中,我需要切换包含UIPickerView的单元格的可见性。我在TableViewController中尝试了以下内容来检测单元格上的点击,但它没有打印任何内容:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath: NSIndexPath) {
print("Tap detected.", didSelectRowAtIndexPath)
}
我也尝试使用重用标识符,但它在每个单元格都返回null。
你能告诉我如何检测TableViewController中单元格的点击吗?附上完整的代码。
答案 0 :(得分:1)
尝试按以下步骤更新viewDidLoad方法
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.delegate = self
self.tableView.dataSource = self
}
答案 1 :(得分:1)
如果正确设置了tableView的委托和数据源,则应将该函数更改为以下内容,并查看是否实际打印了该行:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("Tap detected. Selected indexPath is: \(indexPath.row)")
}
答案 2 :(得分:1)
我查看了您的代码,发现您正在为整个视图添加一个点击手势识别器。可能是这会阻止传输到tableview单元格。我会尝试删除手势识别器,然后在单击单元格时到达didSelect函数再试一次。