iOS页面间传值小结

当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,直接赋值----实现


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值