我有两个视图控制器,它们通过segues和 prepareForSegue 方法来回发送值。这对我来说一直很好,直到我决定将我的ViewController嵌入到导航控制器中。
如果你看下面的方法,你会发现问题是我的 destinationViewController 不再是ViewController ...它是我新创建的UINavigationController。
TimeViewController.swift (辅助控制器)
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var dest = segue.destinationViewController as! ViewController
var min = selectedMinute * 60
output = min + selectedSecond
dest.returnedLabel = recievedString
if cancelled == true {
dest.returnedValue = 0
} else {
dest.returnedValue = output
}
}
一旦我的ViewController嵌入UINavigationController,我就会收到此错误:
Could not cast value of type 'UINavigationController' (0x1088ff698) to 'deleteCoreData.ViewController' (0x106a1f9b0).
因此,如果我将destinationViewController转换为UINavigationController,我理所当然地失去对以前变量的访问权限。这些变量是我在控制器之间保存数据的方式。
当我的ViewController嵌入UINavigationController时,如何设置值?
更新:这就是我的故事板的样子......
答案 0 :(得分:3)
将其转换为ViewController
对我来说很好。
var dest = segue.destinationViewController as! ViewController
你的segue连接应该是: