2017-04-13 63 views
1

我想將數據從tableview單元格傳遞到選項卡視圖控制器以供選項卡視圖控制器的相應視圖使用。但是下面的覆蓋func prepare方法沒有被調用,並且程序完全繞過這個方法進入標籤視圖控制器。UIViewController的準備for segue方法沒有被調用

Storyboard showing the views

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    let selectedCarIndex = self.savedCarsTableVC.indexPathForSelectedRow?.row 

    let destVC = segue.destination as! TabBarController 
    destVC.selectedCar = savedCars[selectedCarIndex!] 
} 

我期待的selectedCar對象從然而陣列是nil返回數據。

+0

嘿@suleee,請直接在您的問題中複製並粘貼您的代碼(並使用Markdown格式化)。你會以更快的速度得到答案;-) –

回答

0

我會嘗試在tableView didSelectRow方法中設置selectedCarIndex。此外,請確保您要導航到TabBarController而不是TabBar中嵌入的某個ViewController。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath) { 
    self.performSegue(withIdentifier: "youridentifier", sender: indexPath) 
} 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    let selectedCarIndex = sender as! IndexPath 

    let destVC = segue.destination as! TabBarController //Are you sure this is the correct ViewController to be casting to? 
    destVC.selectedCar = savedCars[selectedCarIndex.row] 
} 
+0

我認爲你可能是對的:他正在投向錯誤的VC類,並因此導致轉換崩潰:-( –