https://www.jianshu.com/p/78dc76204c8ehtml
https://www.aliyun.com/jiaocheng/390838.htmlxcode
在Xcode 7中,咱们有一个在多个storyboards中组织scenes的新方法,而且能对它们进行引用。app
直接看Main.storyboard文件。我已经为了准备好了一系列组织在一个tabBar Controller下View controller。每个tab包含一个Navigation Controller。spa
下面的图片强调了示例项目的storyboard部分:3d
正如你所看到的那样,tab bar controller包含了三个navigation controller。每个navigation controller控制着不一样的视图控制器。如今,想象一下在这个项目里和其余开发者一块儿工做。正如我前面描述的那样,使用同一个storyboard文件是很是使人头疼的,由于大家每一个人都会修改它。你能够把着三个navigation分支分割成三个storyboard文件。然而,当你准备在运行期从一个storyboard跳转到另一个时,你必须加载相应的storyboard文件。这须要增长额外的代码。code
xcode 7容许你建立多个storyboards,而且能够方便地操纵它们。选择顶部的navigation controller 以及两个view controller,以下图所示:htm
选择好以后,打开菜单栏的Editor,而后选择Refactor to Storyboard(如图)对象
为新的storyboard取一个名字(如图)。我将它命名为First.storyboard。blog
点击保存。正如你所见到的那样,一个新的storyboard已经被添加到你的项目中了。让咱们回到Main.storyboard,你将会看到以下的对象。图片
这个称之为Storyboard Reference,它确实为新建的First.storyboard的引用,而且替换了先前选择的三个view controller。最棒的是若是你双击storyboard引用,Xcode 7会打开所引用的storyboard。所以,当你想要控制应用流时,你能够方便地导向不一样的storyboard。在运行期间,当segue指向的一个Storyboard Reference被执行时,这个被引用的storyboard中的初始化view controller会被加载。此外,Storyboard References还可以引用相同的storyboard。
另外,你也能够手工建立一个新的storyboard,而后添加一个Storyboard Reference到起始的storyboard中。让咱们来试一下。
建立一个新的storyboard并命名为Third.storyboard。在Main.storyboard文件中,从Object Library中添加新的Storyboard Reference。选择Storyboard Reference而且打开相应的Attributes Inspector。以下图所示:
在这个字段中,选择你想要引用的storyboard(在咱们的例子中是Third)。若是这个字段为空白,则被引用的storyboard是定义的Storyboard Reference。Reference ID指向在目的storyboard中的一个特定scene。若是你置空的话,初始化view controller会加载。
最后,Bundle字段须要被置为包含目的storyboard的bundle。若是你留空的话,就会使用源storyboard的bundle。
在Third.storyboard文件中,你须要添加一个新的view controller并将其做为初始化的view controller。以后,只要view controller是Main storyboard的一部分,你能够均可以运行app而且导航到那里。
全部,如今你能够在多个文件里组织你的storyboard,而且能够保持这些storyboard的引用。此外,每个storyboard可以被分配给一个不一样的开发者,而你不须要去考虑view controller间的链接组合。
iOS UI篇10- Storyboard(Storyboard Reference)