私はUITableViewController
を使用しています。私は次の方法をオーバーライドし、ユーザーが別の行を選択したときに別のセグを有効にしようとします。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が必要です。あなたの_Update_は 'override'を入れるかどうかでは不十分です。 – OOPer
デリゲートがviewControllerに接続されていることを確認してください –