iOS提供Unwind Segue,帮助我们从一个页面回到另一个页面,下面演示使用方法:
1. 创建一个Single View Application,新建一个ViewController,同时创建一个类SecondViewController与之绑定。在第一个ViewController上创建一个button,并添加一个Segue到SecondViewController,如下图所示:
2. ViewController代码如下:
#import "ViewController.h"
@interface ViewController ()
//创建一个NSString类型到property,用来保存回传的数据
@property (strong, nonatomic) NSString *dataFromSecond;
@end
@implementation ViewController
- (void)viewWillAppear:(BOOL)animated
{
//输出回传的数据
NSLog(@"data = %@",_dataFromSecond);
}
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
//backFromSecond是Unwind方法,除了backFromSecond这个名字可以自己定义外,其它部分是固定的,这个方法在从SecondViewController跳转回来之前执行
- (IBAction)backFromSecond:(UIStoryboardSegue *)unWindSegue
{
ViewController *vc = [unWindSegue destinationViewController];
[vc setValue:@"haha" forKey:@"dataFromSecond"];
}
@end
- 打开storyboard,在SecondViewController的页面上添加一个button,标题改为”back”,在button上ctrl+点击,并拖动鼠标,会出现一个连线,将连线连接到页面上方的Exit图标上,如下图所示:
- 松开鼠标,弹出一个对话框,选择第二步中定义的backFromSecond方法,Unwind Segue创建完毕。选择框如下图所示:
注意:由于在第二步中先创建了backFromSecond方法,因此在拖动到Exit图标上的时候,松开鼠标会有选择框。如果没有创建方法,则无法拖动成功。因此要先在需要返回的ViewController上创建方法。 - 运行程序,效果如下图所示: