storyBoard正传逆传代理解耦

1.手动跳转

// 跳转到联系人界面

 [selfperformSegueWithIdentifier:@"login2Contact"sender:nil];

2.

跳转之前执行的操作

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

{

    

    UIViewController *vc = segue.destinationViewController;

    vc.title = [NSStringstringWithFormat:@"%@的联系人列表",_accountField.text];

    NSLog(@"%@--%@",segue.sourceViewController,segue.destinationViewController);

}

3.正传需要接收方有响应的属性,传递方需要拿到接收方的对象


4.逆向传递 

导航控制器栈顶的控制器中存在一个代理对象。然后让上一个控制器实现代理方法即可。

5.逆向传值需要正向的时候

// 跳转之前的时候调用

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

{

    

    // 给添加控制器传递联系人控制器属性

    XMGAddViewController *addVc = segue.destinationViewController;

    

    addVc.delegate = self;

}

在这个方法里面告诉它,他的代理对象是上一个控制器

6.为什么手动和自动都可以要用手动跳转

因为手动跳转可以在跳转前做一些判断,自动跳转不会做任何判断。










你可能感兴趣的:(storyBoard正传逆传代理解耦)