iOS中常见的几种逆向传值方式

在iOS开发中,常见的几种逆向传值方式,有代理(delegate)、通知(NSNotification),block等等,其实还有一种方法。

1、委托代理逆向传值方式

delegate只能是一对一之间的。他只能是navigation的栈里面的相邻控制器传值, 不能跨控制器传值。比如:a到b,b到c,而不能从c传到a.

第一个控制器的.m文件

iOS中常见的几种逆向传值方式_第1张图片

第二个控制器的 .h文件

iOS中常见的几种逆向传值方式_第2张图片

第二个控制器的 .m文件

iOS中常见的几种逆向传值方式_第3张图片

2、通知(NSNotifacation)逆向传值

通知的用处就随意多了, 首先他是多对多传值的, 不过要先注册成为监听者,才能收到通知。简单、便捷。不用通知的时候,记得移除。

2.1.发出通知 object:通知发布者(是谁要发布通知),userInfo:一些额外的信息(通知发布者传递给通知接收者的信息内容)

第二个控制器的 .m文件

iOS中常见的几种逆向传值方式_第4张图片

2.2.注册监听对象  name通知的名称。如果为nil,那么无论通知的名称是什么,监听器都能收到这个通知;  Object通知发布者。如果为anObject和aName都为nil,监听器都收到所有的通知

第一个控制器的.m文件

iOS中常见的几种逆向传值方式_第5张图片

3、Block夸界面逆向传值

描述:跨控制器传值,a->b, b->c, c->d, d->a,在a上添加一个label,在d上添加textFild,当点击d上的“返回”按钮时,POP到a,a的label展示d中textFild输入的值。

A控制器的.m文件

iOS中常见的几种逆向传值方式_第6张图片

B控制器的.h文件:

iOS中常见的几种逆向传值方式_第7张图片

B控制器的.m文件:

iOS中常见的几种逆向传值方式_第8张图片

C控制器的.h文件: C控制器要继承B控制器

iOS中常见的几种逆向传值方式_第9张图片

C控制器的.m文件:

iOS中常见的几种逆向传值方式_第10张图片

D控制器的.h文件:D控制器要继承B控制器

iOS中常见的几种逆向传值方式_第11张图片

D控制器的.m文件:

iOS中常见的几种逆向传值方式_第12张图片

你可能感兴趣的:(iOS中常见的几种逆向传值方式)