zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    python之面向对象
    Python常用模块(logging&re&时间&random&os&sys&shutil&序列化&configparser&&hashlib)
    Python之模块与包
    2.1 、寻找元素 (重要的选择器和筛选器)
    4、循环语句 和 异常处理
    7、其他知识点
    2、函数 面向对象
    3、数据类型
    1、初识JavaScript
    2、css
  • 原文地址:https://www.cnblogs.com/xuan-yuan/p/5436592.html
Copyright © 2011-2022 走看看