第十四章 可视化StoryBoard
1.Xib和StoryBoard的对比
相同点:都属于IB编程的方式,可以快速构建GUI。
不同点:xib侧重于单文件(单独的控制器或者视图)编辑,storyBoard侧重于多页面关联。storyBoard可以直观的梳理出页面间的逻辑,并且所有页面跳转逻辑均可在- (void)prepareforSegue:(UIStoryBoardSegue*)segue:(id)sender方法完成,方便界面间数据统一管理
2.注意事项:不需要手动创建window,只需将创建好的StoryBoard在应用程序配置General中设置为Main Interface
3.我们可以通过选中控制器,修改 (is initial View Controller),或者直接移动表示程序入口的箭头
4.利用StoryBoard绘制自定义单元格
1.创建自定义cell是选中左侧TableViewCell
2.绘制自定义UI界面
3.设置重用标识符
4.将storyBoard文件关联至对应的UITableViewControll'er和UITableViewCell子类(自己创建的类)
5.在UITableViewController中完成代码书写:设置section和row数量,设置cell,根据实际情况调整cell的高度
6.注意:cell不再需要注册
5.StoryBoard页面跳转分为两种
1.代码方式:使用代码通过控制器标识来跳转。比如在当前页面的某一个事件中跳转到一个标示为“customVC”的控制器页面中:[self performSegueWithIdentifier:@"customVC" senderL:nil];
2.连线方式:直接使用拖拽可以给按钮连线关联两个页面:选中按钮,按住control,从按钮向下一级页面连线,按钮不需要添加响应方法
3.方式:
push:push出下个界面
modal:模态出下个界面
custom:自定义,需要我们自己实现页面跳转,需要自定义segue
6.segue:可视化编程中连接两个页面的线条,称为segue
1.iPhoneGUI开发中类型主要有三种,包括push、modal、custom
2.其中custom需要我们自定义segue来完成页面间跳转
3.segue有三个重要属性:标识符,源控制器,目标控制器
7.自定义segue
1.新建一个类继承于UIStoryboardSegue
2.选中前一个控制器,按住control鼠标辅助完成连线,选择custom
3.选中自定义segue,设置segue的identifier以及关联类
4.在segue类里面重写perform方法(界面间跳转默认执行的方法),自定义跳转效果
- (void)perform{
//获取源控制器
UIViewController *v1 = (UIViewController*)self.sourceViewController;
//获取目标控制器
UIViewController *v2 = (UIViewController*)self.destinationViewController;
//自定义页面切换效果
[UIView transitionFromView:v1.view toView:v2.view duration: 10 options:UIViewAnimationOptionTransitionCurlDown completion:^(BOOL finished) {
//动画完成后执行的部分
}];
}
8.界面传值
storyboard界面间跳转会执行
- (void)prepareForSegue:(UIStoryboardSeugue*)segue sender:(id)sender方法,方便界面间数据统一管理。
依据不同的segue标识符来完成数据处理
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
CustomViewController *customVC = (CustomViewController*)segue.destinationViewController;
if ([segue.identifier isEqualToString:@"push"]) {
customVC.tempString = self.textField.text;
}else{ NSLog(@"其他情况处理");
}
}