我想将我的数组从我的第一个传递到我的第二个 ViewController。在我的第一个 VC 结束时,我尝试像这样传递它:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let secondVC = ViewController2()
secondVC.passengers2 = passengers
print(secondVC.passengers2)
print(passengers)
}
“passengers”是我在“ViewController.swift”中的第一个数组,“passengers2”是我在“ViewController2.swift”中的 sewcond 数组。
当我转到我的第二个 VC 时,控制台告诉我,“passengers”和“passengers2”具有相同的值,但是一旦我进入“ViewController2.swift”,“passengers2”出于某种原因就为空。
有谁知道为什么?
您代码中的问题是您实例化了一个从未使用过的新 ViewController2 对象。
您想使用 segue 对象内的目标视图控制器,如下所示:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destinationVC = segue.destinationViewController as? ViewController2 {
destinationVC.passengers2 = passengers
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句