如何从父XIB引用XIB文件

时间:2011-03-22 17:34:17

标签: cocoa xcode ios interface-builder xib

如果我在ChildView.xib中创建自定义UIView - 我如何从MainWindow.xib引用它?

我尝试将UIView拖到MainWindow.xib并将其与同一个ChildView类关联。我从ChildWindow.xib和ChildView.xib中使ChildView.xib的所有者成为ViewController,我将childView IBOutlet连接到视图,但是当我启动应用程序时,ChildView.xib中的视图不会自动加载。

这可能吗?在基本级别,我想我问的是如何将UIViews从单独的XIB文件连接到其他一些XIB中的IBOutlet引用...如MainWindow.xib。

FWIW,我知道如何在代码中执行此操作(使用NSBundle手动实例化)但在这种情况下,我想知道如何在IB(Interface Builder)中完全执行此操作。

1 个答案:

答案 0 :(得分:2)

我对此进行了一些实验,并创建了一个带有关联XIB文件的NSViewController子类。我可以通过在主XIB文件中放置NSViewController对象的实例来自动加载,并使用Attributes检查器将“Nib名称”设置为NSViewController子类的XIB文件的名称。该XIB文件默认还包含一个视图对象,您可以在IB中自定义该对象,或者将其设置为自定义视图子类类型。

但是,它仍然需要一行代码才能将视图控制器的视图添加到主窗口的内容视图中。 (我在代表中这样做了)

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [[self.window contentView] addSubview:myVC.view];
}

进一步的实验表明,没有必要使用自定义的NSViewController子类,但仍需要加载的XIB文件由NSViewController拥有。

我没有看到任何方法将主XIB中的插座链接到已加载的XIB中的视图对象。我只能链接到视图控制器对象,然后通过其视图属性访问自定义视图。