iOS中常见的几种逆向传值方式
2017-03-15 本文已影响0人
DB001
在iOS开发中,常见的几种逆向传值方式,有代理(delegate)、通知(NSNotification),block等等,其实还有一种方法。
1、委托代理逆向传值方式
delegate只能是一对一之间的。他只能是navigation的栈里面的相邻控制器传值, 不能跨控制器传值。比如:a到b,b到c,而不能从c传到a.
第一个控制器的.m文件
第二个控制器的 .h文件
第二个控制器的 .m文件
2、通知(NSNotifacation)逆向传值
通知的用处就随意多了, 首先他是多对多传值的, 不过要先注册成为监听者,才能收到通知。简单、便捷。不用通知的时候,记得移除。
2.1.发出通知 object:通知发布者(是谁要发布通知),userInfo:一些额外的信息(通知发布者传递给通知接收者的信息内容)
第二个控制器的 .m文件
2.2.注册监听对象 name通知的名称。如果为nil,那么无论通知的名称是什么,监听器都能收到这个通知; Object通知发布者。如果为anObject和aName都为nil,监听器都收到所有的通知
第一个控制器的.m文件
3、Block夸界面逆向传值
描述:跨控制器传值,a->b, b->c, c->d, d->a,在a上添加一个label,在d上添加textFild,当点击d上的“返回”按钮时,POP到a,a的label展示d中textFild输入的值。
A控制器的.m文件
B控制器的.h文件:
B控制器的.m文件:
C控制器的.h文件: C控制器要继承B控制器
C控制器的.m文件:
D控制器的.h文件:D控制器要继承B控制器
D控制器的.m文件: