所以我有个简单的问题…
我有一个视图控制器对象的实例,我们称之为viewCon1,它的每个属性都有几个子元素,每个都有唯一的属性。我们称它们为sub1sub2sub3。现在,我将这些子视图中的每一个子视图编程地添加到:

//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];

现在我不知道该怎么办了。我需要创建另一个称为viewCon2的视图控制器对象,使它与viewCon1完全相同(albutt)子视图连接。例如,假设viewCon1sub1有一个标题为"foo",我需要viewCon2也有一个标题为"foo"的相同子视图,等等。
有什么简单的方法可以解决这个问题吗?
我很感激你的洞察力,谢谢!

最佳答案

uiviewcontroller和uiview都没有实现nscopying协议,因此复制这些对象不仅仅是一个步骤。一般的想法是创建一个有问题的类的新实例并复制原始对象的配置。
因为您已经有了为视图控制器配置视图的代码,所以最简单的事情就是再次调用该方法来创建视图控制器的第二个实例。我意识到,您的代码现在可能还没有设置好这样做,所以您可能需要重构才能实现这一点。
根据上面的注释,听起来您可能正在视图中存储一些状态,而不是让视图反映存储在应用程序中的数据。它可能有助于确定哪些信息决定视图的布局,并确保数据在应用程序的数据模型中得到正确表示。如果你能做到这一点,你应该能够简单地基于相同的数据创建一个新的视图控制器,并得到一个相同的布局。

10-07 13:07