如何创建在XIB中定义的视图控制器?

时间:2013-08-30 01:45:12

标签: ios uiviewcontroller interface-builder ios7

对不起,也许是noob问题,伙计们。我是iOS开发的新手。

如何创建在XIB中定义的视图控制器?

当您通过“新建文件”在Xcode中创建从UIViewController继承的新类并标记with XIB复选框时,它会创建没有viewController元素的xib文件。但它的placeholder指向UIViewController,其在代码中定义为

但是我看到你可以在Interface Builder中创建控制器本身并为它指定customClass。

不幸的是,这对我不起作用。我在运行时遇到loaded the "EmbeddedViewController" nib but the view outlet was not set错误。但我相信view属性必须由资源加载器自动设置,因为所有内容都是通过XIB定义的。例如,它以TableView及其单元格的方式工作。

请您举例说明怎么做?

我创建了示例项目:https://github.com/cppexpert/SampleWithNib

有问题的控制器是 EmbeddedViewController

4 个答案:

答案 0 :(得分:7)

为每个UIViewController创建一个Xib

每个Xib都有File的Owner对象,您可以在那里设置UIViewController类。单击文件的所有者,然后在其类

上选择EmbeddedViewController

然后将主UIView而不是UIViewController类拖到那里,然后将该视图与文件所有者挂钩作为视图。 UIViewController只是用来拖动到StoryBoard基础项目。

https://github.com/lequysang/gitfiles02/blob/master/SampleWithNib-master.zip

答案 1 :(得分:5)

在故事板项目的IB中存在这些控件。

答案 2 :(得分:2)

当您通过"新文件"创建带有xib的视图控制器时,Xcode会生成UIView并自动将其与view插座连接。好像你在Xcode生成xib文件后改变了一些东西。在这种情况下,您需要手动将视图连接到view插座。

答案 3 :(得分:0)

如果您在xib.set中创建一个新视图,则该文件所有者将自定义为您的自定义类。 或者,如果您只是想创建一个视图。 然后

NSArray* test1 = [[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil];
self.myViewFromNib = [test1 objectAtIndex:0];

myViewFromNib是您的视图对象,“View”是您的笔尖名称。