本文介绍了无法将类型为'UITableView控制器'的值强制转换为'UINavigationController'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从一个视图控制器分割到另一个,并将数据传递给下一个控制器。但我一直收到这个错误:

Could not cast value of type 'UITableViewController' to 'UINavigationController'

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {

   if (segue.identifier == "segueLogWaterData") {
        // pass data to next view
        let nav = segue.destinationViewController as! UINavigationController
        let segueViewController = nav.topViewController as! WaterDataViewController
    }
}

WaterDataViewController作为UITableViewController发生。我还尝试将WaterDataViewController嵌入到UINavigationController中,但收到类似的错误:

Could not cast value of type 'UITableViewController' to 'MyApp.WaterDataViewController'

我做错了什么?

推荐答案

实际上,segue.destinationViewController不是导航控制器;相反,段正在打开的是视图控制器。由于UITableViewControllerUIViewController的子类,因此该代码应该可以正常运行:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "segueLogWaterData") {
        let dest = segue.destinationViewController as! WaterDataViewController
        //Assign to dest's properties
    }
}

这篇关于无法将类型为'UITableView控制器'的值强制转换为'UINavigationController'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-11 06:50