没有调用UIViewController为segue方法做准备

时间:2017-04-13 18:14:57

标签: iphone swift xcode uiviewcontroller segue

我正在尝试将数据从tableview单元格传递到选项卡视图控制器,以供选项卡视图控制器的相应视图使用。但是,下面的重写func prepare方法没有被调用,程序完全绕过这个方法进入选项卡视图控制器。

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

1 个答案:

答案 0 :(得分: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]
}