如何将变量传递给嵌入在导航控制器中的 ViewController?
How to pass variable to a ViewController that is embedded in a Navigation Controller?
我想将数据从 ViewController1
传递到 ViewController2
。 ViewController2
嵌入在 Navigation Controller
中(因为我有一个对应于 3 个子视图控制器的分段控件)。我的 segue 是直接从 ViewController1
到 Navigation Controller
.
我在 ViewController1
中尝试了以下方法:
ViewController2().testID = "test value"
在 ViewController2
中有以下内容:
var testID = ""
然而 testID
当我 运行 print(testID)
在 ViewController2
.
时不更新
将数据从 ViewController1
传递到 ViewController2
的建议是什么?非常感谢任何 help/advice!
您可以通过覆盖 ViewController 1.11 中的 prepare(for segue:) 函数来传递值=]
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination
guard let destination = segue.destination as? UINavigationController else {
return
}
guard let finalDestination = destination.viewControllers.first as? ViewController2 else {
return
}
finalDestination.testID = "Test Value"
}
NSUserDefaults 将始终有效。
我想将数据从 ViewController1
传递到 ViewController2
。 ViewController2
嵌入在 Navigation Controller
中(因为我有一个对应于 3 个子视图控制器的分段控件)。我的 segue 是直接从 ViewController1
到 Navigation Controller
.
我在 ViewController1
中尝试了以下方法:
ViewController2().testID = "test value"
在 ViewController2
中有以下内容:
var testID = ""
然而 testID
当我 运行 print(testID)
在 ViewController2
.
将数据从 ViewController1
传递到 ViewController2
的建议是什么?非常感谢任何 help/advice!
您可以通过覆盖 ViewController 1.11 中的 prepare(for segue:) 函数来传递值=]
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination
guard let destination = segue.destination as? UINavigationController else {
return
}
guard let finalDestination = destination.viewControllers.first as? ViewController2 else {
return
}
finalDestination.testID = "Test Value"
}
NSUserDefaults 将始终有效。