你的位置:首页 > 操作系统

[操作系统]8种传值方式


传值方式

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.