iOS9 Storyboard新特性之 Storyboard References

Xcode7给storyboard带来了以下特性:

  1. 分解一个单一的storyboard成多个storyboard,并通过 storyboard references 连接他们。
  2. 通过 scene dock 给ViewController附加view。
  3. 在storyboard上给 navigation bar添加多个button .

今天有空看了下iOS9 Storyboard的新特性,Xcode7给storyboard带来了以下特性:

  1. 分解一个单一的storyboard成多个storyboard,并通过 storyboard references 连接他们。
  2. 通过 scene dock 给ViewController附加view。
  3. 在storyboard上给 navigation bar添加多个button .

初始项目,在 Main.storyboard中有一个 TabBarViewController,它包含两个HomeViewControllerUserViewController
HomeViewController是一个tableviewcontroller,点击cell进入DetailViewController。UserViewcontroller是一个简单的ViewController。
Main.storyboard和项目目录如下图:
1.png
2.png
项目中还有一个未使用的DiscoverStoryboard.storyboard ,在这个storyboard中只有一个简单的Controller,稍后我们会用到。
3.png
运行项目效果如下:
4.png
今天我们先看一下它的第一个特性,storyboard的分解和引用 (storyboard references)。
storyboard做过开发的猿都知道,storyboard会慢慢的变得越来越臃肿;
还有一个”致命“的弱点就是使用Git进行多人开发的时候经常造成冲突,让我们猿们无法忍受只想摔键盘啊!
即使我们可以使用多个storyboard来解决但也无法实现使用segue从一个storyboard中的viewcontroller push到另一个storyboard中的controller
在Xcode7中这些问题通过storyboard references都得到了很好的解决 。

###一、创建一个Storyboard引用

打开Main.stroyboard选中HomeController对应的三个controller如下图,然后点击菜单栏【Editor】选项中的【Refactor to storyboard…】按钮
5.png
6.png
在弹出框中给新的storyboard起个新的名字Home.storyboard:
7.png
保存后,你会发现目录中多了一个Home.storybaord。打开原来的Main.storyboard你会发现原理的Homecontroller变成了一个storyboard references。选中这个storyboard references 在右侧Attributes Inspector中显示如下图:
8.png
打开原来的的Main.storyboard如下图,到此分解单个storyboard称多个storyboard就完成了,就这么简单。
9.png

###二、在团队开发中使用Storyboard
storyboard references 还有另外一种使用情况,当我们开发多个功能模块时可能会出现,不同的人在自己的storyboard中开发然后通过storyboard references 把不同的功能模块连接起来。在上边说过我们有一个DiscoverStoryboard.storyboard 还没有用到,如何快速的把第三个功能模块合进来?
首先打开Main.storyboardObject Library中托出一个storyboard referencesUser Interface中,
10.png
然后按住键盘control键,点击鼠标左键从TabBarController拖拽到 storyboard reference,在弹出框中选择 view controllers如下图:
11.png
选中 storyboard reference 打开右侧Attributes Inspector 设置storyboardDiscoverStoryboard.storyboard 。好了到此添加一个已存在的storyboard成功。
12.png
运行项目如下图所示:
13.png

原文链接:http://www.lvesli.com


本博客也会在 lecoding 微信公众号中同步更新,欢迎大家订阅,有什么问题可以在此一起交流。公众号搜索: 乐Coding 或者 lecoding 或者微信扫描下方二维码:

/img/icon.jpg