//协议代理的反向传值的实现:
假如: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事情的名称:传的值];
}
本文介绍了一种iOS开发中实现反向传值的方法——使用协议代理模式。通过定义协议并在VC2中声明代理,VC1作为代理实现传值功能。文章详细解释了如何在VC2与VC1之间通过代理完成数据传递。
1003

被折叠的 条评论
为什么被折叠?



