Objective-C 复制 View

标签 objective-c view copy subview

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

我有一个 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/

相关文章:

ios - 将使用 NSLog 视为构建错误

ios - 使用 char 和可变数量的参数调用函数

postgresql - 无法授予在架构上创建 View

c# - 从模型列表中获取模型

c - 如何将字符从数组复制到用户在 C 中创建的文件

objective-c - 从iPhone删除应用程序时如何删除所有本地通知

ios - Swift 中的 String.enumerateSubstringsInRange 带停止

SQL Server通过 View 查询和通过基表查询得到不同的执行计划

linux - 使用 Linux bash 命令或脚本将编号文件复制到相应的编号目录

c++ - 在不复制的情况下从 Eigen::SparseMatrix 中提取 block /ROI