Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法强制转换类型为';UITableViewController';至';UINavigationController';_Ios_Swift_Segue - Fatal编程技术网

Ios 无法强制转换类型为';UITableViewController';至';UINavigationController';

Ios 无法强制转换类型为';UITableViewController';至';UINavigationController';,ios,swift,segue,Ios,Swift,Segue,我正在尝试从一个视图控制器切换到另一个视图控制器,并将数据传递到下一个控制器。但我一直在犯这样的错误: Could not cast value of type 'UITableViewController' to 'UINavigationController' 这在WaterDataViewController作为UITableViewController时发生。我还尝试将WaterDataViewController嵌入到UINavigationController中,但我得到了一个

我正在尝试从一个视图控制器切换到另一个视图控制器,并将数据传递到下一个控制器。但我一直在犯这样的错误:

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

这在
WaterDataViewController
作为
UITableViewController
时发生。我还尝试将
WaterDataViewController
嵌入到
UINavigationController
中,但我得到了一个类似的错误:

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

我做错了什么?

nav.topViewController是一个UITableViewController。显然,WaterDataViewController不是UITableViewController的子类


你想改用rootViewController吗?

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

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

我有时也会遇到同样的错误,因为在情节提要中对我的视图控制器“忽略类”

UITableViewController”与“UINavigationController”不是相关类型。因为它们没有关系,所以它们不能相互关联。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "segueLogWaterData") {
        let dest = segue.destinationViewController as! WaterDataViewController
        //Assign to dest's properties
    }
}