转载

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

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

一、传值分类

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

二、传值方式

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

1、代理传值

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

委托做的事情:

  • 声明委托变量

  • 定义协议方法

  • 调用委托协议

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

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

代理需要做的事情:

  • 执行代理协议

  • 实现委托方法

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

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

2、通知传值

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

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

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

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

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

3、block传值

  • 声明 block 属性用于传值

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

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

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

接受方:

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

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

4、属性传值

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

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

5、单例传值

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

6、数据持久化传值

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

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

结语:

文中用什么不妥之处,欢迎指正交流。ps_最近项目不太忙,把常用的知识点总结下,以便以后查阅巩固。

正文到此结束
Loading...