页面传值:
1:属性传值:主要运用于正向传值。不可以进行反向传值。也不能进行跨页面的传值。
2:单例传值:可以实现正向、反向、跨页面传值。数据是写入内存中,然后再从内存中读取数据
不好的点:必须要创建一个单例对象才可以 。创建单例对象需要创建单例类
3:NSUserDefaults传值:与单例传值相像。它是将数据写入沙盒文件中,再从沙盒文件中读取数据
4:代理传值:最经典最常用的传值方式。主要用于反向传值,而且是一对一的,必须要两个页面之间建立代理关系。
5:block传值:代理传值能做的,block传值都能做。也是一对一,页面也要建立关系之后才能传值
6:通知传值:可以进行跨页面之间的传值。多对多的传值方式。发送方发送一个值,任何一个接收方都可以接收。所以接收方接收的通知,可以来自任何发送方
几种常见的页面传值方式:
属性传值:主要用于正向传值,比较简单,过于单一,不能进行反向传值,也不能进行跨页面的传值
单例传值:比较强大,可以实现跨页面,正向反向都可,但是要自己创建一个单例类,将数据写至内存
NSUserDefaults传值:与单例传值较像,但是是将数据写至沙盒文件中,再进行读取数据
代理传值:主要用于反向传值,而且必须为一对一关系传值
block传值:可以做代理传值能做的事,且代码较为简介,但是也是一对一的关系传值
通知传值:可多对多,可跨页面传值,接收方接受的通知可来自于任何一个发送方
正向反向传值1