【问题标题】:How to reference XIB files from a parent XIB如何从父 XIB 引用 XIB 文件
【发布时间】:2011-07-20 17:00:23
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: cocoa xcode ios interface-builder xib


    【解决方案1】:

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

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

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

    进一步的实验表明,自定义 NSViewController 子类不是必需的,但您仍然需要加载的 XIB 文件归 NSViewController 所有。

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

    【讨论】:

    • 谢谢劳拉。正如您所展示的 - 我已经使用 ViewControllers 完成了这一点。在其他 XIB 中引用 UIView 并不明显,这似乎很奇怪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 2015-07-23
    • 2015-10-27
    相关资源
    最近更新 更多