我使用的是UITableViewController
,我重写了下面的方法,并尝试在用户选择不同的行时启用不同的segues。UITableViewController的didSelectRowAtIndexPath不起作用
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("You selected row #\(indexPath.row)!")
switch indexPath.row {
case 3:
performSegue(withIdentifier: "segue3", sender: self)
case 8:
performSegue(withIdentifier: "segue8", sender: self)
default:
break
}
}
但实际上,这种方法永远不会被调用,并且当我选择一行时从不显示打印输出。
我没有启用单选择,使用户交互和设置委托和数据源控制器本身(使用UITableViewController
时,右这是自动设置?)
我使用静态的细胞和默认UITableViewCell
。视图控制器是UITableViewController
。
更新:
我试图取代:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath)
有了:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
而且这不也行。
您是否设置了委托? – gaskbr
什么版本的Xcode正在使用?当你说你正在使用'UITableViewController'时,你需要重写默认的实现,这意味着你需要关键字'override'来实现这个方法。无论是否放置'override',您的_Update_都不够清楚。 – OOPer
检查委托是否与viewController连接 –