【iOS开发-数据传递】关于两个Controller跳转时的数据传递

正向传递

当一个控制器切换到下一个控制器的时候,这个时候的数据传递为正向传递,所以只需要跳转之前执行一个方法就行。

/*就是执行控制器跳转之间的那条线之前做的方法*/
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // 1.取得目标控制器
    UIViewController *contactVc = segue.destinationViewController;

    // 2.设置标题
    contactVc.title = [NSString stringWithFormat:@"%@的联系人列表", self.accountField.text];

}

反向传递

当一个控制器,需要切换到他上一个控制器的时候,还要给上一个控制器传递数据的时候就需要使用代理模式了。

假设控制B要传输数据给上一个控制器A

B中声明一个代理协议

@protocol MJEditViewControllerDelegate <NSObject>

@optional
//A要执行的方法,B会把数据传递给设个方法,A实现这个方法设置自己的数据,
@end

A遵守这个协议,然后实现协议中的方法,然后在B中设置其代理为A

B把数据准备好,然后通知他的代理A

 // 2.通知代理
    if ([self.delegate respondsToSelector:@selector(代理方法:)]) {
        // 更新模型数据
        self.contact.name = self.nameField.text;
        self.contact.phone = self.phoneField.text;
        [self.delegate editViewController:self didSaveContact:self.contact];
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值