gpt4 book ai didi

Objective-C 复制 View

转载 作者:搜寻专家 更新时间:2023-10-30 20:01:14 25 4
gpt4 key购买 nike

所以我在这里有一个简短的问题......

我有一个 View Controller 对象的实例,我们称它为 viewCon1,它上面放置了几个 subview ,每个 subview 都具有独特的属性。我们称它们为 sub1sub2sub3。现在,我以编程方式添加这些 subview 中的每一个,在以下范围内做一些事情:

//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 的 View Controller 对象,并使其与 viewCon1 完全相同,并附加相同的(尽管是分开的) subview 。例如,假设 viewCon1sub1 的标题为 “foo”,我需要 viewCon2也有一个相同的 subview ,标题为 "foo",等等。

有什么简单的方法可以解决这个问题吗?

如果有任何见解,我将不胜感激!

最佳答案

UIViewController 和 UIView 都没有实现 NSCopying 协议(protocol),所以复制这些对象不仅仅是一步过程。总体思路是创建相关类的新实例并复制原始对象的配置。

因为您已经有了为 View Controller 配置 View 的代码,所以最简单的事情就是再次调用该方法来创建 View Controller 的第二个实例。我知道您的代码现在可能无法设置为执行此操作,因此您可能需要重构以实现此目的。

根据您上面的评论,听起来您可能正在 View 中存储一些状态,而不是让 View 反射(reflect)应用程序中存储的数据。它可能有助于确定哪些信息决定了 View 的布局,并确保数据在应用程序的数据模型中得到正确表示。如果你能做到这一点,你应该能够简单地基于相同的数据创建一个新的 View Controller 并获得相同的布局。

关于Objective-C 复制 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6495420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com