检测UITableViewCell单击自定义Controller

时间:2016-06-29 12:21:32

标签: ios swift uitableview

我有一个UITableViewController,其中一些静态单元格使用容器视图嵌入到UIViewController中。在这个UITableViewController中,我需要切换包含UIPickerView的单元格的可见性。我在TableViewController中尝试了以下内容来检测单元格上的点击,但它没有打印任何内容:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath: NSIndexPath) {
    print("Tap detected.", didSelectRowAtIndexPath)
}

我也尝试使用重用标识符,但它在每个单元格都返回null。

你能告诉我如何检测TableViewController中单元格的点击吗?附上完整的代码。

http://pastebin.com/r12Yv9Be

3 个答案:

答案 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函数再试一次。