OC版本:
需求描述:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"goView2"]) //"goView2"是SEGUE连线的标识
{
id theSegue = segue.destinationViewController;
[theSegue setValue:@"这里是要传递的值" forKey:@"strTtile"];
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"接收到的值为: %@", strTtile);
}
Swift版本:
我们经常会使用navigationViewController,使用segue拉拉线,就可以实现页面跳转,使用prepareForSegue
方便进行参数的正向传递,但我们也许也有的业务会是反向的传递参数,这个时候需要使用delegate。
假设有两个vc,事先做好了segue拉线,设置了按钮啥的,然后可以直接正向跳转,以及因为在一个navigation里面所以,第二个vc有个默认的back按钮可以反向的跳转,第一个是avc,第二个是bvc, 在bvc中我们写一个协议protocol,当然这个协议是写在类外面的,只是和类在同一个swift文件中:
然后我们在avc中要参照这个协议:
另外在bvc中的类中,需要实例化这个delegate:
并且在需要的地方进行这个委托中的参数变化:
最后就可以实现这个反向传递参数了,委托协议里面可以写方法。