• iOS开发之---传值大全


    通知/代理/block都可以传值

    (顺传倒传都可以)

    一 顺传 用属性传值最简单明了

    二 逆传 用block更简洁

    三 通知传值使用场景
        1- 很多控制器都需要知道一个事件,应该用通知(传递参数的过程就是传值);
        2 - 相隔多层的两个控制器之间传值

    ———————————————————————————————————————————————————————————

    8种传值方式
    (很全面,不知道谁整理的,先谢谢.拿过来大家共同学习)

     ⾃定义初始化方法在UI中,⼀般都是用在一个界面去推送另⼀个界⾯的时候,总之你要想到既然要⽤自定义初始化方法,⾄至少能够要在当前方法中去创建该对象。所以这种方式不适合回调。

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

     2 在合适的地方进⾏调用⾃定义初始化⽅法。



    代理传值:(顺传倒传都行)

      1>拟定⼀份协议(命名一般是XXXDelegate),协议里面的⽅法的参数取决于你要传递的内容

      2>设置代理人属性(再次强调,使用assign防⽌循环引用)

      3>在需要调⽤的地⽅调⽤,这⼀步比较抽象,⽐如上面所讲例⼦子,我们是需要在button点击的时候

      4>传值并且取消界面,所以我们的delegate就在这个⽅面的进⾏调用

      5>让相应的对象成为代理人,⼀般都是在创建的时候指定一个代理⼈

      6>遵守协议,并且实现相应的方法,然后在方法中进行逻辑处理


     
    单例传值:(顺传倒传都行) 单例的好处就在于只要创建了一次,其余任何时候访问到的对象都是同一个,所以很多时候⽤用户的⼀一些信息都是存储到单例中,这样就不需要多次进⾏行传值了,只需要再次创 建单例就可以了



    属性传值:(顺传)
    1 需要定义公开属性
    2 需要⼀个你需要传值的对象
    3 进行属性赋值



    通知传值:(顺传倒传都行)
    第三个界面的值传给第⼀个界面。
    1. 在第⼀个界面建⽴一个通知中心, 通过通知中⼼,注册一个监听事件
    2. 在第一个界⾯中,设置接收到通知的事件。
    3. 在第⼀个界⾯面中的dealloc中, 将通知中心remove掉
    4. 在第三个界面中, 建⽴一个通知中心, 通过通知中心, 发送通知(发送通知的过程就是传值的过程,将要传输的值作为object的值传给第一个界面



    AppDelegate传值:
    在AppDelegate中声明⼀一个属性
    通过AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate] 保存属性 通过AppDelegate *app = [UIApplication sharedApplication].delegate 使用属性



    block传值:(顺传倒传都行) block同样用于回调

    1  为block取别名,并且在参数列表中将需要传递的参数写成形参

    2  设置block属性(注意使用copy)

    3  设置⼀个⽅法持有当前block

    4  在合适的地方进行调⽤类似于代理

    5  在创建该对象的地方进行block⽅面的调用



    NSUserDefault或⽂件传值:(顺传倒传都行)

    [[NSUserDefaults standardUserDefaults] objectForKey:]

    初始化传值:(顺传:)

    倒传需要在”ViewDidAppear””ViewWillAppear”中

     
  • 相关阅读:
    一步一步学习开发BPM工作流系统(三)开发WinForm的应用平台1
    支持多数据库本地和远程调用的数据访问层架构
    HF Web表单开发技术文档
    CDZSC_2015寒假新人(2) 数学 C
    CDZSC_2015寒假新人(2)——数学 A
    ZSC 1306: 沼跃鱼早已看穿了一切 题解
    解决”java.lang.UnsatisfiedLinkError: Native Library .dll already loaded in another classloader”的问题
    有目标就要坚持
    (转)新兴XML处理方法VTDXML介绍
    (转)Java远程通讯可选技术及原理
  • 原文地址:https://www.cnblogs.com/1224dashen/p/5423054.html
Copyright © 2020-2023  润新知