ios中控制器之间的反向传值之二---代理传值

//协议代理的反向传值的实现:

假如:vc2要向vc1传入一个值,也就是所谓的反向传值。

因为vc2自己没有能力去传值,所以呢vc2需要找个可以传值的代理来帮他做这件事,所以vc2得制定一个协议(要求代理有这个能力做这件事)

1.1在vc2.h中

制定协议:@protocol   协议名称  <NSObject>

  制定协议后需要列出要做的事

协议内容:-(void)事情的名称:(传值的类型)变量名;

再制定一个代理属性:

@propery(nonatomic,…..)id<协议名称>delegate;  

2.vc1.h

因为vc1有能力做vc2的代理,所以他肯定有做事情的方法的实现

首先需要让vc1遵守vc2的协议

声明 vc2.delegate=self(也就是自己)

在vc1.m中实现这个方法,实现方法的同时也就把vc2中的值当做形参传入vc1中。

3.当vc2.m中去用他得代理去做这件事时,传入一个形参,就可以将vc2中的这个形参用他的代理就可以传到vc1中

实现:if ([self.delegaterespondsToSelector:@selector(事情的名称:(传值的类型)变量名)]) {

        [self.delegate事情的名称:传的值];

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值