iOS 页面(代理、通知、block、单例、属性)传值
一、传值分类
页面传值基本分为两种:正向传值和反向传值。
二、传值方式
传值,最基本的无非就是代理传值、通知传值、block传值等,还有大家经常用到的属性传值和单例传值、存储传值等。
1、代理传值
代理传值,简单明了、浅显易懂,实际开发中也常用。
委托做的事情:
声明委托变量
定义协议方法
调用委托协议
![](https://img.haomeiwen.com/i3521878/2a83b5b8fec66220.png)
![](https://img.haomeiwen.com/i3521878/374385b434af6dfa.png)
代理需要做的事情:
执行代理协议
实现委托方法
![](https://img.haomeiwen.com/i3521878/f4d25d08dbc80bb7.png)
![](https://img.haomeiwen.com/i3521878/dfb6d2cde41e4769.png)
2、通知传值
通知的用法很简单,通知人创建通知并发送,接收人接受通知就OK了,通知完毕注意移除掉通知,醒目中通知太多并不好(接受的二手项目通知就泛滥成zai了)
![](https://img.haomeiwen.com/i3521878/184bb83eb8e2a7e6.png)
![](https://img.haomeiwen.com/i3521878/9d2f4b630155844e.png)
最后大家一定不要忘了把通知移除掉,最好在dealloc方法中移除。以免给大家造成不必要的麻烦。只有把代码写到最严谨才能把bug降到最低。移除通知一般遵循谁创建谁移除。在哪个控制创建就在哪个控制器里移除。
![](https://img.haomeiwen.com/i3521878/73e9475b9bf57fb2.png)
3、block传值
声明 block 属性用于传值
传值的时候调用block 完成传值
![](https://img.haomeiwen.com/i3521878/1443f0498d1d6890.png)
![](https://img.haomeiwen.com/i3521878/7e249258d811e3ea.png)
接受方:
传值一个block 给传值方,并在block内捕获回调值信息
![](https://img.haomeiwen.com/i3521878/2287f9a1370b890f.png)
4、属性传值
属性传值是最常用到的,不会用的,基本上可以告别IT圈了。
![](https://img.haomeiwen.com/i3521878/d15ec58ecce58675.png)
5、单例传值
单例顾名思义就是单独一个实例,相当于一个通用变量在整个工程中可以用作公共资源使用。单例分为系统单例和自定义单例。
6、数据持久化传值
NSUserDefaults是数据持久化的一种主要做存储使用。
![](https://img.haomeiwen.com/i3521878/84ebe7706b4d7906.png)
网友评论