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
}
}