UIStoryboard
目录
- 概述
- Storyboard的创建
- Storyboard中的页面跳转
文件内跳转
文件外跳转
- Segues
- 不同类型的视图控制器在UIStoryboard上的实现
概述
IOS编程对视图控制器处理常常分为xib和Storyboard,xib是比较古老的视图控制器管理形式,Storyboard则是比较新的,对于两者的异同,笔者暂时还不是很有体会,只是觉得Storyboard的话,可以让开发人员很快熟悉界面的跳转流程,但是缺点就是当如果Storyboard很大的时候,会发现可能只是改一小部分的东西,Xcode编译的时间依旧会很久,可能Xcode又要把整个Storyboard给编译一遍。
优点
通过使用storyboard,你可以有一个全局的概念
和xib的对比
有很多局限性,storyboard并不如Interface builder那么功能强大,有很多Interface Builder可以做的地方,storyboard并不能做
Storyboard的创建
直接新建一个Storyboard文件
Storyboard中的页面跳转
(1)Storyboard文件内UIViewController之间的跳转
连线实现跳转
直接连线,从一个UIButton到一个UIViewController
获得跳转到的目标视图控制器的类以作初始化,在原视图控制器上重写以下方法
-(void)prepareForSegue:(UIStoryboard *)segue sender:(id)sender{
UIViewController *secondVC = segue.destinationViewController;
}
代码实现跳转+设置UIViewController之间的Segue
[self performSegueWithIdentifier:@"segue_identifier" sender:self];
注:segue_identifier为原视图控制器连线到跳转到的目标视图控制器之间的segue的Identifier,在检查器面板可进行设置
使用技巧:通过设置和判断segue.identifier来区分跳转到的视图
(2)Storyboard文件之间的跳转
实现代码
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"storyboard_name" bundle:nil];
UIViewController *nextVC = [storyboard instantiateViewControllerWithIdentifier:@"viewcontroller_identifier"];
注:viewcontroller_identifier为Storyboard里面中的视图控制器的Storyboard ID;storyboard_name为Storyboard除了文件后缀之后的文件名
Segues
Model
Push
自定义Segue——Custom
自己编写动画,详见《IOS 5 by tutorials》
不同类型的视图控制器在UIStoryboard上的实现
UIViewController
UITabBarController
UINavigationController
UITableViewController
UITableViewCell