2017-04-13 61 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类,并因此导致转换崩溃:-( –