我创建了一个UITableView
并将其连接到数据源并在故事板中委托,并将UITableViewDelegate
,UITableViewDataSource
放在课堂上。当然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
答案 0 :(得分:1)
确保未添加任何手势,并且UserInteraction已启用。
答案 1 :(得分:-1)
检查您的tableView是否实际连接到IBOutlet
。我怀疑self.tableView
中的viewDidLoad
实际上是零。
另外,检查您的故事板以确保实际单元格具有"默认值"选择风格。您可能不小心将选择样式设置为.none
。
答案 2 :(得分:-1)
请在类中添加TableView代理和数据源 - >
类ViewController:UIViewController,UITableViewDelegate,UITableViewDataSource { }