传值方式
1 初始化传值:(顺传)
自定义初始化方法在 UI中,一般在一个界面推送另一个界面的时候,因此要是想用想到既然要用自定义初始化方法,至少要在该方法中去创建该对象.所以这种方式不适合回调.
- 自定义初始化方法,将需要传递的内容作为参数,如需要传递多个,则设置多个参数.
- 在合适的地方进行调用自定义初始化方法.
2 属性传值:(顺传)
- 定义公开属性
- 需要一个你传值的的对象
- 属性赋值
3 单例传值:(顺传和逆传都行)
单例的好处就在于只要创建一次,其余任何时候使用的时候使用的都是同一个,所以很多时候用户的一些信息存储到单例中,这样就不需要进行多次传值了,只需要再次创建单例就行了.
4 AppDelegate传值:
- 在AppDelegate中声明一个属性
- 通过AppDelegate *app = [[UIApplocation sharedApplication] delegate];保存属性
- 通过AppDelegate *app = [UIApplocation sharedApplication].delegate;s使用属性.
5 通知传值:(顺传和逆传)
- 创建通知发送者
- 创建通知的接收者
- 销毁通知
6 代理传值:(顺传和逆传) (控制器由 AàB)
B.h 中:制定协议 设置代理属性
B.m 中:在需要代理做事情时让代理执行协议和方法.(注:先判断再执行防止崩溃)
A.m 中:设置代理 遵守协议 实现代理方法
7 block 传值:(顺传和逆传)(在 B 中声明和调用 在 A 中实现)
- 为 block 取别名,并在参数列表中将需要传递的参数写为形参.
- 设置 block 属性(注:用 weak)
- 设置一个方法持有当前block
- 在合适的地方调用
- 在创建该对象的的地方进行 block 调用
8 NSUserDefault或文件传值:(顺传和逆传)
[[NSUserDefault standardUserDefault] objectForKey:];
倒传需要在 ViewWillAppear 和 ViewDidAppear.