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

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时,控制台告诉我,“passengers2”和“passengers2”具有相同的值,但是只要我在“ViewController2.swift”中,“passengers2”就因为某种原因成为emtpy。
有人知道为什么吗?

最佳答案

代码中的问题是,您实例化了一个新的ViewController2对象,但它从未被使用过。
要使用segue对象中的目标视图控制器,如下所示:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let destinationVC = segue.destinationViewController as? ViewController2 {
        destinationVC.passengers2 = passengers
    }
}

08-18 03:01