iOS 9 Storyboard unwind segue 使用详细步骤 同时传值

Unwind Segue,可以方便的在Navigation Controller的Controllers之间回退–返回至前若干个Controller,简单的说就是控制器之间的跳转,同时可以传值,省去了过去的Deleagte等跳转传值方法的步骤。

例如,Navigation Controller栈中有五个Controller:A、B、C、D、E,其中A push B,B push C,C push D,一直不断的push,这时我想退回,有选择的退回。如我想从 E退回至A 或 B退回至A 或 E退回至A,可以方便的使用Unwind Segue实现。

下面我做了,Root0->Green1->Yellow2->Orange3这样的跳转(跟着一起做吧)

1)  Orange3视图可以通过unwind segue方便的返回到Root0,不传值

2)  Green1视图可以通过unwind segue方便的返回到Root0 ,同时传值回去

Demo地址:https://github.com/BigBagFind/UnwindDemo

1.新建如下控制器,Root0push到Green1,Green1Push到Yellow2,Yellow2Push到Orange3,

iOS 9 Storyboard unwind segue 使用详细步骤 同时传值_第1张图片

2.打开需要返回到的界面,我这里是第一个Root0控制器,即RootViewController.m,加上下面方法,返回类型一定是IBAction,参数类型一定是UIStoryboardSegue

下面的我写的方法:

- (IBAction)ViewControllerUnwindSegue:(UIStoryboardSegue *)segue{

}

3.在storyboard里找到要跳转的界面进行连线,这里我在OrangeVC,做如下操作

(1)右键Orange上面的第三个按钮,会出现第一个RootVC写的IBAction方法(RootVC没写的话当然就是空的!)

iOS 9 Storyboard unwind segue 使用详细步骤 同时传值_第2张图片

(2)左键方法右边的加号拉到back按钮上面,添加出发事件的对象

iOS 9 Storyboard unwind segue 使用详细步骤 同时传值_第3张图片

(3)左键点击action确定

(4)这时候你点击OrangeVC3的back即可跳回到RootVC0

iOS 9 Storyboard unwind segue 使用详细步骤 同时传值_第4张图片

4.单纯的跳转就是如上面的1、2、3操作,这里开始在跳转中进行传值,就是利用storyBoardSegue进行传值,这里我用GreenVC1跳转到RootVC0同时传如一个text字符串

(1)来到GreenVC,右键Exit,左键“+”号拉到GreenVC本身,就是说GreenVC来触发这个事件

iOS 9 Storyboard unwind segue 使用详细步骤 同时传值_第5张图片

(2)拉线之后出现manual,然后左键点击即可

iOS 9 Storyboard unwind segue 使用详细步骤 同时传值_第6张图片

(3)这时左边GreenVC出现了Unwind,点击设置identifier

iOS 9 Storyboard unwind segue 使用详细步骤 同时传值_第7张图片

(4)在GreenVC中为segue设置要传的值

- (void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender{

if([segue.identifier isEqualToString:@"from2To1"]) {

RootViewController*destVc = segue.destinationViewController;

destVc.text=@"我传过来咯";

}

}

(5)设置GreenVC中Back按钮的Action

- (IBAction)back:(id)sender {

[self performSegueWithIdentifier:@"from2To1" sender:nil];

}


(6) 在Root0 自己写的IBAction方法中接受传值并且log

if([segue.identifierisEqualToString:@"from2To1"]) {

NSLog(@"back\n");

NSLog(@"\t%@",self.text);

}

iOS 9 Storyboard unwind segue 使用详细步骤 同时传值_第8张图片

你可能感兴趣的:(iOS 9 Storyboard unwind segue 使用详细步骤 同时传值)