IOS初级:story board的跳转
本文要实现view1跳到view2,view2又跳回view1。
首先要在视图中拉出一条连接view1和view2的线。
下面是在view1的控制器中实现,从view1跳到view2
//发生跳转前会执行这个方法 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { //1.取得目标控制器 UIViewController *contactVc = segue.destinationViewController; //2.目标控制器成员变量赋值 contactVc.member = [NSString stringWithFormat:@"values = %@ ",@"set values"]; } //比如点击一个按钮实现跳转 -(IBAction)btnAction { //跳转到identifier所指向的视图,字符串View1ToView2是视图中连接线的标识,在连接线的属性面板中可以设置。 //performSegueWithIdentifier这个方法的参数View1ToView2会传入到上面的那个prepareForSegue方法,所以可以在prepareForSegue中识别不同的identifier, //根据identifier进行不同是数据传递。 [self performSegueWithIdentifier:@"View1ToView2" sender:nil]; }
如果要从view2返回view1,只要view2自己关掉自己就行了,但是值传递不是用prepareForSegue,需要用代理
- (IBAction)backAction { //1.关闭当前视图控制器 [self.navigationController popViewControllerAnimated:YES]; //respondsToSelector搜索代理的协议方法是否已经实现 //myProtalFunParam2这里是本类的头文件所声明的一个代理方法 //- (void)myProtocolFun:(View2ViewController *)view2VC Param2:(NSString *)someStr; if ([self.delegate respondsToSelector:@selector(myProtocolFun:Param2:)]) { [self.delegate myProtocolFun:self Param2:@"my string"]; } }