显示视图控制器更改主视图的值

时间:2016-01-08 03:58:53

标签: swift nsmutablearray presentviewcontroller

我有一个两个视图控制器。

让我们说VC1和VC2,我从VC1呈现视图VC2并发送NSMutableArray。像这样:

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

我写了一个委托,当有什么变化时通知VC1。但是当VC2改变数组的值并且在VC1上解散数组时会自动改变。我只想在委托方法调用时更改它。

我无法弄明白。它没有意义。

抱歉英语不好。

度过愉快的一天。

1 个答案:

答案 0 :(得分:0)

出于某种原因,

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

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