今天,介绍一下2个多个页面 界面 到跳转。首先普及一下基础知识:每个界面用storyboard来设计,然后每个界面有自己到viewcontroller。这是必须的。
一,界面跳转
ios7的storyboard模式,所有的界面都在同一个 storyboard中。我们打开主story。新加一个view controller。拖动到右边就行。
然后有2种方式添加 关联:
第一种
在第一个view controller中加一个button。点中button,control+鼠标左键(或者鼠标右键拖动)拖动到第二个view controller中。选push方式,model,custum方式都行。
然后run 就行。看看效果吧。
第二种:代码方式
选第一个view controller,右键拖动到第二个view controller中,选custom方式(其他方式都行)。然后在2个view之间 有一条线,这跳线 就是segue。选中这跳线,给他来个identifier,比如叫 secondView
然后给第二个view 关联view controller 的class
选中 view controller 再选 custom class 设置为 SecondViewController 这就是把 这个控件和一个类关联起来了。
给第一个view controller 中添加一个button,添加一个 touch up inside 事件,函数如下,具体怎么添加,看我以前到blog
- (IBAction)sender:(id)sender
{
NSLog(@"%@",@"wwww");
[selfperformSegueWithIdentifier:@"secondView"sender:self];
// [self presentModalViewController:nil animated:YES];
}
然后run 就行。点button后 就打开第二页了。
二,界面传值
在第一个storyboard的第一个view controller。m文件中,加入
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifierisEqualToString:@"secondView"])
{
id theSegue = segue.destinationViewController;
[theSeguesetValue:elementarrayforKey:@"elementarray"];
}
}
就行了。
[theSegue setValue:elementarray forKey:@"elementarray"]; 这句中的 elementarray 就是要传的变量。
在第二个view controller控制的view controller。h中
//传过来的result,变量
@property (nonatomic,strong)NSMutableArray *elementarray;
。m中
@synthesize elementarray;
-(void) viewDidLoad
{
NSLog(@"%lu", (unsignedlong)elementarray.count);
for (NSMutableDictionary *tin elementarray)
{
NSLog(@"%@", [tobjectForKey:@"name"]);
}
}
就可以接收到了。就是注意第二个view到类型 要和第一个view中变量的类型完全一致即可。
别的没了。
附上segue的图