我试图从一个视图控制器转到另一个视图控制器,并将数据传递给下一个控制器。但我不断收到此错误:
Could not cast value of type 'UITableViewController' to 'UINavigationController'
Run Code Online (Sandbox Code Playgroud)
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
}
}
Run Code Online (Sandbox Code Playgroud)
这发生在WaterDataViewController
作为UITableViewController
. 我也试过嵌入WaterDataViewController
到 aUINavigationController
但我得到了类似的错误:
Could not cast value of type 'UITableViewController' to 'MyApp.WaterDataViewController'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
实际上,这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
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6622 次 |
最近记录: |