前言
StoryBoard是iOS开发中很直观的开发工具,它可以极大的提高开发效率,但是StoryBoard由于能直接描述多个控制器页面,也会引发一些问题。
当团队开发时,StoryBoard中的拖入的控制器过多会导致界面错综复杂。并且协同开发中特别容易出现冲突。如果冲突出现了也会特别难以解决,各种连线会直接影响问题排查。
苹果也意识到了这个问题。在iOS 9 以后引入了一个StoryBoard Reference特性。很好的解决了这个问题。
StoryBoard Reference
如图:
介绍
StoryBoard Reference就是StoryBoard 引用的意思,它为其他的StoryBoard提供了一个站位的控制器。
使用
它使用很简单:如图,本来是tabbarcontroller --> navigationController --> viewController 这样的结构,但是自控制器多了很乱,也不易调试。所以可以将每个自控制模块单独抽取出来,创建一个独立的StoryBoard。
操作如下
如图会将对应的模块转化成一个新的StoryBoard,并在原来部分生成一个StoryBoard Reference。效果非常直观!
对应的就会生成几个新StoryBoard。对应的StoryBoard就是原来每个模块的单独部分,这样不仅看起来更加直观了,还消除了很多安全隐患。
至于新的StoryBoard的使用就直接通过StoryBoard来创建对应的ViewController来设置对应的UI页面了。
小结
- StoryBoard Reference 很方便使用,解决了StoryBoard过于庞大之后不易维护的问题。
- StoryBoard Reference 是iOS 9 之后的新特性,如果直接使用会导致系统版本在iOS 9 以下的机型无法使用
- StoryBoard Reference 做 iOS 9 以下适配。可以删除对应的StoryBoard Reference,并根据生成的新StoryBoard 通过代码来加载对应的StoryBoard 中的ViewController。