界面间传值

界面之间传值问题

1.在AppDelegate.h文件中声明一个全局变量, 来连接两个界面的数据

使用下面语句可以创建单例对象,即整个程序中只有这一个对象,声明的变量只是对该对象的引用

AppDelegate *delegate= [UIApplication sharedApplication].delegate;

delegate就可以访问到单例类中的成员变量

2.正向传值,直接在第二层视图声明并初始化第一层视图的变量,使用该变量来获取第一层视图的成员变量的值;  反向传值,就是在第二层视图调用第一曾视图的方法,该方法内有第一层视图的成员变量,通过对成员变量赋值,把数据传给第一层视图, 就是说第二层视图要有第一层视图的成员变量.(原因反向传值时,不能通过初始化变量来获取原来视图的地址).

3.使用协议反向传值,第二层视图制订协议,第一层视图遵守协议并实现协议方法,方法内保存第二层视图传过来的值, 在第一层视图中声明第二层视图的成员变量,并初始化,使用该变量将第二层的委托指向第一层视图(subView.delegate=self;[self presentViewController:subView animated:YES completion:nil];),在第二层视图内的某一触发事件中调用协议方法将要回传的值放到里面即可.

4.使用代理进行反向传值(从第二层到第一层),在第一层视图声明一个block, 在第二层视图实现该block, 在第一层中调用,block就会找到其实现来获取第二层视图中的成员变量,从而实现反向传值(通过返回值而不是参数,通过参数是正向的传值).

5.采用消息中心方式,详见文件<<消息通知中心>>

http://www.cnblogs.com/PaulpauL/ 版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:https://www.cnblogs.com/PaulpauL/p/4935255.html