第二章Storyboard Recipes(1)
在开始移动开发时,我们会用笔和纸画出我们app的流程图。所以,就有了自从生成流程图的软件,用它你可以自动记录你的流程图和处理过程。现在,开发者的Xcode有了一个叫“storyboard”(故事版)的工具,可以可视化开发流程图,从而可以为你的app创建一个工作框架。
在这一章中,你将会使用storyboard创建一个基于iOS7的简单的、有多个界面的应用,这个应用是基于一个虚拟的app公司。在本章的最后,我们将会使用storyboard创建一个带有选项卡的app。
2.1 那么,storyboard里面到底有些啥呢?
Storyboard是封装了一些带有元数据的xib文件以及它们之间关系的集合。它完全使models和views隔离,符合MVC的设计思路。一个storyboard仅仅通过拖拉一些组件就可以创建很多不同的scenes和它们之间的关系。使用storyboard的一大优点是:以上这些工作仅仅需要一丢丢的代码。
Storyboard有两大组件:scenes和segues。
2.2 Scenes(场景)
一个scene就是铺满整个屏幕的视图。Scenes包括UI对象和控制它们的viewcontrollers(视图控制器)。表2-1显示了storyboard中5种不同的scenes,我们在之后的教程中也会用到。
2.3 Segues
一个segue就是连接两个scenes的东西,用它使一个scene指向另外一个scene。当一个scene指向另一个scene的时候,我们就说“第一个scene呈现(presenting)给第二个scene”,类似地,“第二个scene是被呈现(is presented)的scene。
有以下几种segues:
a) Push segue:push segue需要一个导航控制器(NavigationController)或者一个选项卡控制器(tab-bar controller)。当从一个视图控制器移动到另一个视图控制器是,你就是在push一个新的视图控制器到导航控制器或者选项卡控制器。使用导航控制器和选项卡控制器的好处在于:它们可以保持跟踪栈里面的其他视图控制器并自动为它们提供导航。不论什么时候,你使用导航控制器和选项卡控制器,你都应该使用这种类型的segue。
b) Modal segue:使用modalsegue,你不需要导航控制器或者选项卡控制器。需要注意的是:modal segue仅仅只是从一个控制器跳到另外一个控制器,在这个过程中,你会失去自动导航的功能。
c) Pop-over segue:Pop-oversegue跟modal segue类似,只是它是在当前的scene上创建了一个小窗口。Pop-over segue仅仅在iPad中有效。
d) Custom segue:自定义segue(custom segue) 使用在自定义不同scenes之间的转换。
一个segue是一个UIStoryboardSegue类,它有三个属性:源视图控制器(sourceViewController),目的视图控制器(destinationViewController)和标示符(identifier)。标识符是一个NSString类型的变量,用来在你的代码中区别不同的segues。
App一般在用户触发一个动作的时候使用segue。这个动作可能是触发一个按钮或者一个表格单元,或者是一个手势识别的结果。在storyboard中segue是如图2-2中所示,连接两个scenes。
我们可以通过不同的segue使得多个scene指向同一个scene,我们将在本章的后面接触到。取决于你自己组织你的storyboard,segue的方向可以是从左到右也可以从右到左。