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

Wil*_*ham 19 iphone xcode cocoa-touch uistoryboard

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

因此,使用storyboard,何时需要使用.xib/.nib文件?

谢谢.

Tim*_*Tim 33

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

实际上,几乎在任何需要在运行时更改的子视图的情况下,您都希望使用单独的NIB.

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


Akk*_*kki 11

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

  • 在开始使用故事板重新设计整个界面之前,您可能需要阅读Jonathan Wight对该技术所遇问题的详尽描述:http://toxicsoftware.com/uistoryboard-issues/ (5认同)

Bes*_*esi 10

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

Pro的

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

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

    示例2:您可以为TableView创建"原型单元",从而大大加快静态表视图的创建速度.使用nib文件无法实现 AFAIK

  • 这很酷 :-)

反对的

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

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