您的位置:首页 > 移动开发 > IOS开发

iOS页面间传值小结

2015-08-25 10:06 260 查看
当A页面跳转到B页面,再从B页面跳会A页面时传值的总结:(B是模态视图)

传值方法:通知、KVO、代理、单例、block

核心代码:

一、通知方法:
************B页面
1、当从B页面跳回A页面时,即在返回按钮的点击事件中发送全局通知



**********A页面
2、在A的.m文件中的viewDidLoad方法中接受这个通知



3、然后调用这个方法,赋值



二、KVO,通过监听textfield的值的改变
A页面需要传过来的值,所以把A页面作为KVO的观察者,把有值的B页面作为被观察者
********B页面
1、在B的.h文件中设置一个value属性,接收textField的值



2、在B的.m文件中,返回按钮的点击方法中,赋值给value



******A页面
1、在A页面的.h文件中定义一个B的实例



2、在A页面的.m文件中覆写实例的set方法



3、点击跳转到模态视图,在跳转按钮的点击方法中创建了一个模态视图的对象,把这个对象赋给自己自己本身的属性MoTai;



4、在A页面的.m文件中变更通知的方法



三、代理方法
首先要确定,谁是代理,A页面设为代理,实现协议的方法,这个方法传进来那个需要的值
***********B页面
1、模态视图B相当于小孩,在B的.h文件中声明要遵守的协议



然后声明一个代理属性



2、在返回按钮的点击方法中启动代理,调用方法,同时把需要的值作为参数传过去



***********A页面
1、A是代理所以要遵守协议.h文件中遵守上边的PassValue协议



2、在跳转到模态视图B时,创建了模态视图对象,此时把模态视图的代理设置成A



3、A是代理,所以在.m文件中要实现代理方法,得到值



四、单例方法
定义一个单例类:单例只有一个对象
****单例.h文件-------Value.h



****单例.m文件——Value.m



*******B的.m文件中,在返回按钮的点击事件中,初始化单例并且给单例赋上需要的值



******A的.m文件中,在视图显示在屏幕前的方法里,给label赋值



五、block方法

block是一个匿名的代码块,传值也只是block的用法之一。
首先,block的三部曲:
声明、实现、调用。(缺一不可)
一般来讲,block的声明和调用是在一个类中,而block的实现是在另一个类中
传值思路:
1、在B页面里声明一个block,(可以用typeDefine)----声明
2、定义一个带block参数的方法,并且实现,在B页面将要消失的方法中,或者返回A页面的方法中调用block
3、在A页面,实现block,直接赋值----实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: