iOS 传值方式

1.初始化传值(顺传)

  自定义初始化方法在UI中,一般在一个界面推送另一个界面的时候,因此要是想用想到既然要用自定义初始化方法,至少要在该方法中去创建该对象,所以这种方法不适合回调。

      <1>自定义初始化方法,将需要传递的内容作为参数,如需传递多个,则设置多个参数

      <2>在合适的地方进行调用自定义初始化方法

2.属性传值(顺传)

      <1>定义公开属性

      <2>需要一个你传值的对象

      <3>属性赋值

3.单例传值(顺传和逆传都行)

  单例的好处就在于只要创建一次,其余任何时候使用的时候使用都是同一个,所以很多时候用户的一些信息存储到单例中,这样就不需要进行多次传值了,只需要再次创建单例就行了

4.AppDelegate传值

       <1>在AppDelegate中生命一个属性

       <2>通过AppDelegate *app =  [[UIApplocation sharedApplication] delegate];保存属性

       <3>通过AppDelegate *app =  [[UIApplocation sharedApplication] delegate];使用属性

5.通知传值(顺传和逆传)

       <1>创建通知发送者

       <2>创建通知的接受者

       <3>销毁通知

6.代理传值(顺传和逆传)(A&B)

  B.h中:制定协议,设置代理属性

  B.m中:在需要代理做事情时让代理执行协议和方法。(注:先判断再执行防止崩溃)

  A.m中:设置代理,遵守协议,实现代理方法

7.block传值(顺传和逆转)(在B中声明和调用在A中实现)

       <1>为block区别名,并在参数列表中将需要传递的参数写为形参

       <2>设置block属性(注:用week)

       <3>设置一个方法持有当前block

       <4>在合适的地方调用

       <5>在创建该对象的地方进行block调用

8.NSUserDefault或文件传值:(顺传和逆传)

    [[NSUserDefault standardUserDefault] objectForKey:];

    倒传需要在 ViewWillAppear 和 ViewDidAppear.

原文地址:https://www.cnblogs.com/Mrliheng/p/5438310.html