如何复制UIViewController的数组

时间:2016-08-23 18:04:29

标签: swift

我有UIViewController的数组,我想复制它。

var data: Array<UIViewController> = []

这是我的代码:

data = viewControllers.map{($0.copy() as! UIViewController)}

但是这段代码引发了异常,我无法确定问题是什么 任何人都可以指出问题可能是什么?

1 个答案:

答案 0 :(得分:3)

UIViewController不符合NSCopying协议,这意味着无法复制。您可以尝试使用NSKeyedArchiver \ NSKeyedUnarchiver将视图控制器存档到NSData对象,然后将其取消归档。但它不会创建完全相同的副本,viewchildViewControllers等属性很可能会丢失。

复制UI元素实际上是一种糟糕的方法。正确的解决方案是再次实例化视图控制器并手动设置所需的属性。