XIB总是需要一个视图控制器吗?

时间:2012-01-30 18:20:26

标签: ios xcode interface-builder

如果我在IB中创建了界面,我必须始终需要基础UIViewController,还是可以直接跳到UIView

截至目前,我正在obj-c进行所有设计,这使得忙碌的工作

如果我必须使用UIViewController,那么无论如何都要将UIView吸出来,如果那是我想要的那么?

我只是希望能够从XIB中提取静态布局,而不是将它们放在obj-c中。

任何建议赞赏

4 个答案:

答案 0 :(得分:1)

UIViewController有一个方便的initWithNib: bundle:方法,可以让一切变得如此简单,但也有办法通过以下方式从xib获取对象:

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"WhateverItsNamed" owner:self options:nil];

(这里的nib数组包含对应于XIB文件中存储的任何对象的对象。)

答案 1 :(得分:1)

不,如果它不能满足您的需求,您不需要UIViewController。

初始化UINib后,请使用:

-instantiateWithOwner:options:

访问nib内容。使nib的根对象成为UIView(或其子类)。如果您打算与文件所有者建立连接,则需要将文件所有者设置为适合上下文的类。

答案 2 :(得分:1)

不,您不需要将UIViewController与XIB相关联。

首先,不要将视图控制器添加到XIB。然后,您经常使用NSNibUINib API来访问nib的顶级对象 - 这样您就可以避免使用视图控制器并在NIB编辑器中设置您想要的任何结构,并根据需要以编程方式访问NIB中的对象。

答案 3 :(得分:0)

在iOS 5中,不建议再使用XIB,而应使用故事板。 简单地回答你的问题,每个顶级视图都需要一个视图控制器来负责它。

所有子视图都可以作为视图控制器中的插座,并从那里进行处理。