Ios 如何使用Swift在segue中保存数据

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)

我想将数组从第一个ViewController传递到第二个ViewController。 在我的第一次风险投资结束时,我试图通过如下方式:

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。