请简述页面传值都有哪些实现方式。

请简述页面传值都有哪些实现方式。

代理、block、通知、属性传值、单例传值、NSUserDefault

(1)属性传值:A页面的值跳转到B页面之后把值传给B页面,只需要在.h文件中定义属性,A页面在跳转之前赋值给B页面的实例对象属性即可。一般用于正向传值给跳转界面。
(2)代理传值:首先在跳转界面B.h文件定义代理协议方法 ——>在B.m页面中实现委托 ——>在A.m中遵守协议,实现协议方法;这种方法多用于反向传值,即跳转界面传值返回给上个界面。
(3)通知传值:是要监听值得变化,谁就注册通知。A页面要监听B页面的值得变化,那么就在初始化方法里注册通知,当B页面的值发生变化时A页面就会执行change方法,在B页面小时方法中推送一个通知,相当于定义一个表示把值传给该标识通知的注册者。通知传值是一对多的关系,一般用于跳转界面传值给上一界面。
(4)单例传值:新建一个继承NSObject的类;在.h文件里声明一个属性和一个类方法;在.m文件实现类方法,初始化;单例方法其实就是一个只会初始化一次,然后给他赋值共享的一个单例,该方法适合正向和反向传值,但是不要滥用。
(5)Block传值:其实就是一部的高级传值方法,适用于传值给谁给上一页面。

你可能感兴趣的:(请简述页面传值都有哪些实现方式。)