Ios 如何使用Swift在segue中保存数据
我想将数组从第一个ViewController传递到第二个ViewController。 在我的第一次风险投资结束时,我试图通过如下方式:Ios 如何使用Swift在segue中保存数据,ios,swift,Ios,Swift,我想将数组从第一个ViewController传递到第二个ViewController。 在我的第一次风险投资结束时,我试图通过如下方式: override func prepare(for segue: UIStoryboardSegue, sender: Any?) { let secondVC = ViewController2() secondVC.passengers2 = passengers print(secondVC.passengers2)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let secondVC = ViewController2()
secondVC.passengers2 = passengers
print(secondVC.passengers2)
print(passengers)
}
“乘客”是我在“ViewController.swift”中的第一个数组,“乘客2”是我在“ViewController.swift”中的第二个数组
当我转到我的第二个VC时,控制台告诉我,“乘客”和“乘客2”具有相同的值,但一旦我进入“ViewController2.swift”,出于某种原因,“乘客2”就是emtpy
有人知道为什么吗?代码中的问题是实例化了一个从未使用过的新ViewController2对象 您希望使用segue对象内部的目标视图控制器,如下所示:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destinationVC = segue.destinationViewController as? ViewController2 {
destinationVC.passengers2 = passengers
}
}
代码中的问题是实例化了一个从未使用过的新ViewController2对象 您希望使用segue对象内部的目标视图控制器,如下所示:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destinationVC = segue.destinationViewController as? ViewController2 {
destinationVC.passengers2 = passengers
}
}
“让secondVC=ViewController2()”这是因为您正在创建一个全新的对象,而不是使用该段末尾的对象
将secondVC=segue.destination改为ViewController2
“将secondVC=ViewController2()”这是因为您正在创建一个全新的对象,而不是使用segue末尾的对象<代码>将secondVC=segue.destination改为ViewController2。