UITableViewController 的 didSelectRowAtIndexPath 不起作用

Fra*_*Joe 2 uitableview ios swift

我正在使用它UITableViewController,并覆盖以下方法,并尝试在用户选择不同的行时启用不同的转场。

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
    }
}
Run Code Online (Sandbox Code Playgroud)

但实际上,这个方法永远不会被调用,并且当我选择一行时,打印输出永远不会显示。

我确实启用了单选,启用了用户交互并将委托和数据源设置为控制器本身(使用时会自动设置UITableViewController,对吧?)

我正在使用静态单元格和默认值UITableViewCell。视图控制器是UITableViewController.

在此输入图像描述

更新

我尝试替换:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath) 
Run Code Online (Sandbox Code Playgroud)

和:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
Run Code Online (Sandbox Code Playgroud)

这也行不通。

小智 5

对于斯威夫特 3

override  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
    // your code ...  
}
Run Code Online (Sandbox Code Playgroud)

一件事是确保single selection选择了您的 tableView 属性......