一、在StoryBoard下页面的切换引入了UIStoryboardSegue(联线类),共有三种类型:push,modal,和custom,如图下:
![Storyboard的使用 <wbr>页面切换、页面传值(IOS5)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
简单说下这三个的作用:使用导航栏压进新的控制器(push),模态的加载视图控制器(modal),自定义(custom)
一般页面的切换都是点击源视图控制器上的某个按钮或某个view的touch事件,然后对应代码里有一个响应的方法去代码版实现跳转,可参考:《UIViewContrller 页面之间 切换的几种方式》http://blog.sina.com.cn/s/blog_74e9d98d01017vxn.html
在storyboard中有两种方式:
1.直接点选button,按住Ctrl键拖拽至目的视图控制器就可以了,不用给button设置对应的响应事件
2.通过viewcontroller之间直接拖拽形成一个segue,然后指定这个segue的identifier,最后再源视图控制器的代码中适当位置调用:[self
performSegueWithIdentifier:@"nextSegue" sender:self];
就能实现跳转
![Storyboard的使用 <wbr>页面切换、页面传值(IOS5)]()
二、页面间传值
常用的传值方式有单例、全局静态变量,直接在源视图控制器的跳转代码处指定目的试图控制器类对象的变量值:
CmgeRechargeViewController *rechargeViewController =
[[CmgeRechargeViewController alloc]init];
rechargeViewController.Abianliang = @"dfdf";
......
[self.navigationController
pushViewController:rechargeViewController animated:YES];
在storyboard中只要在源视图控制器代码中重写prepareForSegue方法:
- (void)prepareForSegue:(UIStoryboardSegue *)segue
sender:(id)sender{
if ([segue.identifier
isEqualToString:@"nextSegue"]) {
//可通过判断segue的标示来实现源视图控制器中多个跳转事件
RecipeDetailViewController
*destViewController = segue.destinationViewController;
//获取目的试图控制器对象,跟原来一样,在.m文件中要引入头文件
destViewController.recipeName
= @“ddd”;//设置变量传值方式还是和以前一样
}
}
参考:http://blog.csdn.net/mad1989/article/details/7919504
http://alan-hjkl.iteye.com/blog/1679905
http://ryan.easymorse.com/?p=72 //自定义segue类型
http://www.myexception.cn/mobile/828058.html