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