Storyboard 是苹果在iOS 5 中引入的技术方案,讲原来 多个nib 的复杂逻辑集中到一个集合里面,但是在多人合作开发中Storyboard也存在很多问题,经常要处理冲突,已经合并带来的痛苦。
最近因为要开发新的项目,所以也研究一下Storyboard ,个人认为Storyboard 对于拆分业务逻辑,和多人开发非常方便,而且整个项目的UI架构也非常清晰,不必多说以下是个人的总结。
假设app 的整个UI 框架是建立在UITabBarController 上的,在业务逻辑上我们需要3个 tab
接下来我们从建立一个项目,到拆分逻辑开始Storyboard 的学习。
1:创建项目,选择single View Application ,这样有利于我们了解Storyboard,我们将她( :))命名 TabStoryboard
2: 创建完成后工程会自动生成一个Main.storyboard ,点击Main.storyboard 将里面的ViewController 删除掉,然后在UI控件里拖入一个UITabBarController.
3:拖入UITabBarController 后将item1 和item2 删除掉。
4:删除后的如下图 ,接下来运行你会看到显示的是一个黑屏,找下原因 :)在下一条。
5:显示黑屏的原因是,需要将 is Initial View Controller 勾选。勾选后运行,看到一个以UITabBarController为基础空间的工程,并且里面没有tab。
6:到这步,我们需要给UITabBarController 装载item,因为我们是在Main.storyboard 外部建立one ,two ,three 三个Controller ,所以这里我们需要用代码去处理接下来的逻辑。建立一个MainTabBarController 继承UITabBarController .
7:然后点击Main.storyboard 将Class 填写成MainTabBarController.
8: 新建one ,two ,three ,storyboard 和 对应的三个UIViewController.
9:点击one.storyboard 添加 Stroryboard ID ,two.storyboard 和 three.storyboard ,one 的操作是一样的。
10: 这段代码是要写到MainTabBarContrller 中去的,然后运行,你会看到文章前面的那个界面。
到这里,应该还有些细节,比如one.storyboard ,two.storybaord ,three.storyboard 中是否勾选了is Initial View Controller,还有table 上item 的设置,这些请参考基本UITabBarController 里的api.
这个UI 框架就分成了三个业务逻辑 ,分别是one.storyboard ,two.storybaord,,three.storyboard,这样在团队开发中基本上可以避免冲突,而且每块的逻辑都很清楚。
今天的就先这样,时间有限,欢迎交流!