当我的 ViewController 嵌入到 UINavigationController 中时,如何继续值?
How do I segue values when my ViewController is embedded in an UINavigationController?
我有两个视图控制器,它们通过 segues 和 prepareForSegue 方法来回发送值。在我决定将我的 ViewController 嵌入导航控制器之前,这对我来说一直很完美。
如果您查看下面的方法,您会发现问题是我的目的地ViewController不再是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).
因此,如果我将目标ViewController 转换为 UINavigationController,我将失去对之前拥有的变量的访问权限。这些变量是我在控制器之间保存数据的方式。
所以我的问题是:
当我的 ViewController 嵌入到 UINavigationController 中时,如何搜索值?
更新:这是我的故事板的样子...
将其转换为 ViewController
对我来说效果很好。
var dest = segue.destinationViewController as! ViewController
你的 segue 连接应该是:
我有两个视图控制器,它们通过 segues 和 prepareForSegue 方法来回发送值。在我决定将我的 ViewController 嵌入导航控制器之前,这对我来说一直很完美。
如果您查看下面的方法,您会发现问题是我的目的地ViewController不再是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).
因此,如果我将目标ViewController 转换为 UINavigationController,我将失去对之前拥有的变量的访问权限。这些变量是我在控制器之间保存数据的方式。
所以我的问题是:
当我的 ViewController 嵌入到 UINavigationController 中时,如何搜索值?
更新:这是我的故事板的样子...
将其转换为 ViewController
对我来说效果很好。
var dest = segue.destinationViewController as! ViewController
你的 segue 连接应该是: