假设App中包含非常多不同的页面,使用Storyboard能够帮你降低实现页面间跳转的胶合代码。
过去的开发人员相应每一个视图控制器分别创建界面设计文件(即“nib”或“xib”文件),如今。仅仅要一个Storyboard就能够包揽全部视图控制器的界面设计和他们之间的关联。
Storyboard有非常多长处:
-
使用Storyboard能够更好地了解App中全部的视图以及它们之间的关联的概况。掌控全局更加easy,由于全部的设计都包括在一个文件里,而不是分散在非常多单独的nib文件里。
-
Storyboard能够描写叙述不同视图之间的过渡。这样的过渡叫做“segue”(译注:意为“转场”,而“Storyboard”原意为“分镜”,均源自电影术语),你能够直接在Storyboard中通过连接不同的视图控制器来创建转场。多亏有了转场,打理界面的代码比曾经要少了。
-
Storyboard通过新的原型表项(prototype cell)和静态表项(static cell)特性,让处理表视图(table view)的工作更加轻松。差点儿全然能够在Storyboard编辑器里搞定表视图的设计,相同也降低了代码量。
-
Storyboard使自己主动布局(Auto Layout)更易用。
自己主动布局功能能够让你通过界面元素之间的数学关系定义来确定元素的位置和尺寸。极大简化了不同尺寸屏幕的适配工作。
自己主动布局不在本教程范围之内。若想了解很多其它,请參阅自己主动布局入门。
假设你很讨厌Interface Builder,或者推崇用代码搞定全部界面的话,Storyboard可能不适合你。个人主张是代码能少写就少写,特别是UI代码,所以Storyboard简直就是为我准备的一把利器。
假设你想继续使用nib,那就继续用吧,要知道Storyboard里是能够使用nib的。两者并不是相互排斥关系。
效果图:
1、打开Xcode,创建新项目,语言选择swift。
2、在当前Storyboard的 File inspector(文件检查器) 中禁用Auto Layout和Size Classes。
3、在Main.storyboard 中把原先的视图控制器删掉。
4、把一个 Tab Bar Controller(分页栏控制器) 从对象库拖到面板中。点击空白区域能够放大缩小视图。
5、执行。这时会发现报错。
Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?
未设置入口,也就是刚才删除最先使用的那个场景之后没设置初始视图控制器。
为解决这个问题,选中这个分页栏控制器,然后在 Attributes Inspector(属性检查器) 中选定 Is Initial View Controller 。
6、再次执行ok了。