呈现的视图控制器更改主视图的值

Presented view controller change value of main view

我有两个视图控制器。

比方说 VC1 和 VC2,我正在呈现来自 VC1 的视图 VC2 并发送一个 NSMutableArray。像这样:

let vc2 = VC2()
vc2.array = self.someArray
self.presentViewController(vc2, animated: true, completion: nil)

我写了一个委托来在发生变化时通知 VC1。但是,当 VC2 更改数组的值并在 VC1 处关闭数组时,它会自动更改。我只想在调用委托方法时更改它。

我想不通。没有意义。

抱歉英语不好。

祝你有愉快的一天。

NSMutableArray 被称为 mutable 是有原因的。它可以改变。当你说 vc2.array = self.someArray 时,这是对同一个可变数组的引用,而不是新副本。

要么使用 .copy() 创建副本,要么只使用不可变的常规 Swift 数组(例如 [Int])。