故事板是否消除了对.nib的需求

时间:2011-12-13 19:45:09

标签: iphone xcode cocoa-touch uistoryboard

随着storyboard的介绍,当我创建UIViewController的子类时,我不会选择创建.xib / .nib,因为我可以在界面构建器中拖出一个viewcontroller并将其分配给新类。 / p>

那么,使用storyboard,我什么时候需要使用.xib / .nib文件?

谢谢。

4 个答案:

答案 0 :(得分:33)

故事板不能完全消除对NIB文件的需求。一个常见的例子是创建子视图以进入UIScrollView。您无法在故事板中单独创建子视图;相反,您必须为子视图创建单独的NIB,并以编程方式将它们附加到滚动视图。

事实上,几乎在任何需要在运行时更改子视图的场合,您都会想要使用单独的NIB。

故事板非常适合某些类型的应用程序,但对于任何远程复杂的东西,旧的方式仍能很好地工作。另一个好处是它们可以很好地共存。您可以在故事板中放置占位符视图,然后使用NIB定义的视图以编程方式填充它们。

答案 1 :(得分:11)

我想,storyboard包含所有视图的.xib / .nib文件。它提供了它们之间的关系,并帮助您避免混淆,如果你有很多的意见。此外,它还可以在编写代码时节省您的时间和精力。

答案 2 :(得分:10)

我最近尝试过故事板,我对它的使用感到复杂:

<强> Pro的

  • 便利性:您可能需要编写更少的代码。因此,您可以显示静态视图,而无需编写任何代码。
  • 概述:您可以快速查看ViewControllers如何相互关联
  • 效率:对于简单的用例,我发现故事板比“旧方式”更有效。

    示例1:Editor > Embed In > Navigation Controller和voilà,不再需要实例化和配置。

    示例2:您可以为TableView创建“原型单元”,从而大大加快静态表视图的创建速度。 AFAIK这是带有nib文件的not possible

  • 很酷: - )

<强>精读的

  • 我发现可重用性在某种程度上会受到故事板的影响。虽然我可以从多个点切换到给定的ViewController,但它仍然有限,因为在一种情况下我可能将VC用作Popover而在另一种情况下用作Master-ViewController。
  • 假设您正在一个大团队中工作,而且不同的人正在更改您应用程序的不同部分,那么您必须合并一个单片故事板可能会在团队工作方面造成严重问题。
  • 我真的希望有一些机制将现有的nib文件包含或引用到故事板中,这是目前无法实现的。

因此,考虑到这些观点,我仍然觉得故事板非常吸引人,但将这两种方法结合起来并不是很重要。此外,这项技术仍然很新,因此可能会在(近)未来有所改善。

答案 3 :(得分:4)

如果使用故事板,通常不需要创建单独的.xib文件。如果你愿意,你可以仍然使用.xib文件 - 它可能是有用的,例如如果你有一个特别复杂的视图,你想自己配置。但大多数情况下,没有必要这样做。