我使用的是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連接 –