如何在Storyboard旁边使用nibs / xib?

时间:2014-02-11 22:00:18

标签: ios objective-c xib uistoryboard nib

我听到很多人说他们使用Storyboard来解决问题,但是为了创建可重复使用的视图和其他原因,Storyboard达不到他们的期望,他们选择仍然使用nibs / xibs。

在Storyboard被接受练习后进入iOS开发区域,Apple开始不再讨论笔尖了,我很困惑如何将两者混合在一起,似乎缺乏解释组合的资源或教程。

如果我想要一个可重用的UIView,比如UIImageView和UIProgressView嵌入其中,我是否要创建一个 nib文件,并使用[NSBundle mainBundle]导入来实现它在?或者我像故事板一样使用它,并在其中有一个带有可重用视图的大型nib文件,然后明确地导入视图?

将非常感谢如何串联使用它们,甚至只是指向教程的链接。我真的想利用笔记本和笔记本电脑的好处,但我很难理解它。

1 个答案:

答案 0 :(得分:2)

有两种方法可以将视图从xib中拉出来。

  • 如果它是视图控制器的主视图,那么当视图控制器的实例需要其视图时,这或多或少会自动发生(因为它们通过名称或视图控制器的方式关联)实例化的)。

  • 否则,执行此操作:让视图成为其xib中唯一的顶级对象,并加载xib并抓取唯一的顶级对象,如下所示:

    NSArray* objects = [[UINib nibWithNibName:@"SomeName" bundle:nil]
                        instantiateWithOwner:nil options:nil];
    UIView* v = objects[0];
    

    现在,您可以将新实例化的视图插入到您的界面中。正如你所说,你可以一遍又一遍地做到这一点,以获得更多实例。

注意:第三种方法是将xib加载到具有视图出口的所有者,但要解释这需要比我想要进入的更多细节,并且它可能无法为您提供所需的任何内容此刻。