tableview didSelectRowAtIndexPath无法检测到任何点击

时间:2017-08-18 06:07:51

标签: ios uitableview swift3

我创建了一个UITableView并将其连接到数据源并在故事板中委托,并将UITableViewDelegateUITableViewDataSource放在课堂上。当然UINavigationControllerDelegate推送给另一个UIViewcontroller

我致电

self.tableView.dataSource = self
self.tableView.delegate = self

on viewDidLoad

这是我的didSelectRowAtIndexpPath:代码:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    //let cell = tableView.dequeueReusableCellWithIdentifier(reuseContentFreeIdentifier, forIndexPath: indexPath) as! FreeTableViewCell
    print("didSelectRowAtIndexPath eshops")
    let row = indexPath.row
    print("business row:\(HCPartner[row])")
    performSegue(withIdentifier: "eshopsURL", sender: self)
}

当我点击一个单元格行时,它没有检测到任何点击,也没有显示print("didSelectRowAtIndexPath eshops")的任何日志。

为什么didSelectRowAtIndexPath:不起作用?我在swift 2上试过它,它有效。但是在快速3中它没有用。

我的代码出了什么问题?检测点击UITableView

的单元格行的正确代码是什么?

我的viewcell层次结构如下: enter image description here

enter image description here

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:1)

确保未添加任何手势,并且UserInteraction已启用。

答案 1 :(得分:-1)

检查您的tableView是否实际连接到IBOutlet。我怀疑self.tableView中的viewDidLoad实际上是零。

另外,检查您的故事板以确保实际单元格具有"默认值"选择风格。您可能不小心将选择样式设置为.none

看起来应该是这样的: Selection Style popup menu

答案 2 :(得分:-1)

请在类中添加TableView代理和数据源 - >

类ViewController:UIViewController,UITableViewDelegate,UITableViewDataSource { }