ioS 页面(代理、通知、block、单例、属性)传值

iOS 页面(代理、通知、block、单例、属性)传值

一、传值分类

页面传值基本分为两种:正向传值和反向传值。

二、传值方式

传值,最基本的无非就是代理传值、通知传值、block传值等,还有大家经常用到的属性传值和单例传值、存储传值等。

1、代理传值

代理传值,简单明了、浅显易懂,实际开发中也常用。

委托做的事情:

声明委托变量

定义协议方法

调用委托协议

ioS 页面(代理、通知、block、单例、属性)传值_第1张图片
ioS 页面(代理、通知、block、单例、属性)传值_第2张图片

代理需要做的事情:

执行代理协议

实现委托方法

ioS 页面(代理、通知、block、单例、属性)传值_第3张图片

2、通知传值

通知的用法很简单,通知人创建通知并发送,接收人接受通知就OK了,通知完毕注意移除掉通知,醒目中通知太多并不好(接受的二手项目通知就泛滥成zai了)

ioS 页面(代理、通知、block、单例、属性)传值_第4张图片
ioS 页面(代理、通知、block、单例、属性)传值_第5张图片

最后大家一定不要忘了把通知移除掉,最好在dealloc方法中移除。以免给大家造成不必要的麻烦。只有把代码写到最严谨才能把bug降到最低。移除通知一般遵循谁创建谁移除。在哪个控制创建就在哪个控制器里移除。

ioS 页面(代理、通知、block、单例、属性)传值_第6张图片

3、block传值

声明 block 属性用于传值

传值的时候调用block 完成传值

ioS 页面(代理、通知、block、单例、属性)传值_第7张图片

接受方:

传值一个block 给传值方,并在block内捕获回调值信息

ioS 页面(代理、通知、block、单例、属性)传值_第8张图片

4、属性传值

属性传值是最常用到的,不会用的,基本上可以告别IT圈了。

ioS 页面(代理、通知、block、单例、属性)传值_第9张图片

5、单例传值

单例顾名思义就是单独一个实例,相当于一个通用变量在整个工程中可以用作公共资源使用。单例分为系统单例和自定义单例。

6、数据持久化传值

NSUserDefaults是数据持久化的一种主要做存储使用。

ioS 页面(代理、通知、block、单例、属性)传值_第10张图片

你可能感兴趣的:(ioS 页面(代理、通知、block、单例、属性)传值)