iOS-delegate逆向传值(逻辑整理)

首先在delegate中需要明确的是:传值的是被代理的对象-声明代理的类;而捕捉值并且对他进行处理的是代理对象。

理解:在被代理的类中定义协议,声明代理对象。在协议中定义需要使用到的方法,使用代理对象调用这些方法。在使用这些方法的时候就会传这个类中的一些属性的进去。但是这个方法的具体实现并不在这个被代理的class中,他是由遵循了这个协议的类实现的,这时代理对象就可以捕获这个值,并且在方法中对这个值进行处理。

所以被代理对象传值,代理对象捕获值并处理值,进行下一步的处理。

再向下面走——delegate的逆向传值

场景:页面A点击按钮跳转到B页面,在B页面中输入一个值并且将这个值传回A页面中,在A页面中显示。

思路:

传值的是B页面,所以代理应该在B页面的VC中声明,BViewController是被代理对象,A是代理对象。

如何传值:传值的原理就是在代理对象中实现委托的方法,这个方法是可以带参数列表的,这里的参数是在被代理的类中进行赋值的,而在代理对象中,我们在实现方法中间将参数列表中的值赋给类中的对象,由此就实现了逆向传值。

————————END————————

猜你喜欢

转载自blog.csdn.net/qq_40230669/article/details/107789957