我正在用Swift开发一个iOS应用程序。
我希望使用prepareForSegue函数从视图向另一个视图发送数据。
但是,我的目标视图前面有一个导航控制器,所以它不能工作。如何设置导航控制器中包含的VC上的数据?
发布于 2015-02-28 23:59:01
在prepareForSegue中,访问目标导航控制器,然后访问其顶部:
let destinationNavigationController = segue.destination as! UINavigationController
let targetController = destinationNavigationController.topViewController从目标控制器,您可以访问它的视图和传递数据。
在旧版本(现已过时)中,Swift和UIKit的代码略有不同:
let destinationNavigationController = segue.destinationViewController as UINavigationController
let targetController = destinationNavigationController.topViewController发布于 2015-08-06 13:40:42

这
var data : String = ""
override func viewDidLoad() {
super.viewDidLoad()
print("data from ReceiveViewController is \(data)")
}当然,您可以发送任何其他类型的数据(int、Bool、JSON .)
发布于 2017-01-16 15:30:49
使用optional binding和Swift 3&4完成答案:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let navigationVC = segue.destination as? UINavigationController, let myViewController = navigationVC.topViewController as? MyViewControllerClass {
myViewController.yourProperty = myProperty
}
}https://stackoverflow.com/questions/28788416
复制相似问题