hem*_*ker 3 copy view objective-c subview
所以我在这里有一个快速的问题......
我有一个视图控制器对象的实例,让我们调用它viewCon1,并且它上面放置了几个具有唯一属性的子视图.让我们给他们打电话sub1,sub2和sub3.现在,我以编程方式添加每个子视图,以达到以下程度:
//create the subviews
TaskUIButton *sub1 = [[TaskUIButton alloc] init];
TaskUIButton *sub2 = [[TaskUIButton alloc] init];
TaskUIButton *sub3 = [[TaskUIButton alloc] init];
//add them to viewCon1
[viewCon1.view addSubView:sub1];
[viewCon1.view addSubView:sub2];
[viewCon1.view addSubView:sub3];
Run Code Online (Sandbox Code Playgroud)
现在这里是我不知道如何继续的地方.我需要创建另一个被调用的视图控制器对象,viewCon2并使其viewCon1与附加的相同(albiet独立)子视图完全相同.因此,例如,让说viewCon1的sub1有一个标题"foo",我需要viewCon2也有与标题相同的子视图"foo"等.
有什么简单的方法可以解决这个问题吗?
我很感激任何见解,谢谢!
UIViewController和UIView都没有实现NSCopying协议,因此复制这些对象不仅仅是一步到位的过程.一般的想法是创建有问题的类的新实例并复制原始对象的配置.
由于您已经拥有为视图控制器配置视图的代码,因此最简单的方法是再次调用该方法以创建视图控制器的第二个实例.我意识到你的代码可能没有立即设置,所以你可能需要重构才能实现这一点.
根据您的上述评论,您可能会在视图中存储某些状态,而不是让视图反映存储在应用程序中的数据.确定视图布局的确定信息并确保数据在应用程序的数据模型中正确显示可能有所帮助.如果可以这样做,您应该能够简单地基于相同的数据创建一个新的视图控制器并获得相同的布局.