我可以使用Interface Builder构建视图的子类吗?

时间:2009-07-09 14:47:46

标签: iphone cocoa-touch interface-builder

我有一个视图,我在Interface builder中构建了一个tableview和相关的出口等,以显示项目列表。单击某个项目会显示该项目的详细信息。

我现在想要构建一个非常相似的视图,其中列出了相同类型的项目和一些其他控件以及不同的单元格选择行为。在这种情况下,如果用户点击该项目,他们将有效地使用该项目作为模板来创建新项目。或者,他们可以单击按钮来创建新项目。除此之外,还有很多我想从原始视图中重用的逻辑 - 例如,项目与位置有关,并且有一个后台线程可以更新位置信息。

看起来很自然的事情是将原始viewcontroller子类化,并使用IB构建第二个视图布局。但是,在我开始这个之前,我想知道这是否可能/推荐的做法? IB会识别超类中的IBOutlets并让我连接它们吗?

2 个答案:

答案 0 :(得分:2)

IB将识别超类中定义的IBOutlets。

您始终这样做:UIViewController中视图的出口是在您为每个视图控制器子类化的超类中定义的。

答案 1 :(得分:1)

pgb是对的。 IB将识别超类中的出口

至于是否对控制器进行子类化是一个好主意还是坏主意,我不确定。 Apple建议继承NSArrayController以改变排序/过滤行为。视图控制器与数组控制器不同,但我敢说,对视图控制器进行子类化可能是正确的做法。