2009-07-14 70 views
3

我想创建一个视图,里面有一些控件,一个文本框和一些按钮,我想复制它们以将它们显示为tabview中选项卡的内容。 每个选项卡必须具有此视图的实例。 路线?复制视图

回答

5

戴夫德隆是关闭和有点你的问题包含答案(“每个选项卡必须有一个视图的实例”)。创建一个UIViewController子类以编程方式创建视图或加载NIB。然后实例化你的UIViewController子类的几个实例,并将它们全部添加到UITabViewController的viewControllers属性中。

你会想花一些时间与View Controller Programming Guide。您正在制作同一个UIViewController子类的多个实例的事实对解决方案的影响不大。

1

Ehm ...我不确定我是否正确理解你想做什么。 “重复”一词听起来不太好,因为大多数情况下在编程中它表示一种“气味”。

我不是可可的专家,既不是Objective-C的专家,但我想你可以以某种方式将你的控件放在某种容器控件中,并在你的标签视图上实例化(重用而不是重复)这个容器控件。无论你想要什么。

+0

正如我所说:“每个标签必须有一个这个视图的实例”。无论如何,感谢无用的答案。 – goo 2009-07-14 20:38:18

+0

@他说的是正确的。您可以将视图构建为View XIB,然后使用NSViewController多次实例化它(是实现它的一种方法)。 – 2009-07-14 21:08:06

0

复制视图层次结构的快速和肮脏的方法是编码并解码它。例如:

NSData * encodedView = [NSKeyedArchiver archivedDataWithRootObject:myView]; 
NSView * myViewClone = [NSKeyedUnarchiver unarchiveObjectWithData:encodedView]; 
+0

这种方法有许多缺点。例如,如果视图设置了目标和操作,除非目标也被编码,否则它们将不会被复制。 – 2009-07-14 21:29:28