zoukankan      html  css  js  c++  java
  • 8种传值方式

    初始化传值:(顺传:)

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

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

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

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

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

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

    3 在需要调用的地方调用,这一步比较抽象,比如上面所讲例子,我们是需要在button点击的时候传值并且取消界面,所以我们的delegate就在这个方面的进行调用

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

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

    单例传值:(顺传倒传都行)

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

    属性传值:(顺传)

    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”中

  • 相关阅读:
    数据库实验2
    jsp 配置MySQL服务器 以及数据的插入和读取
    利用JSP编程技术实现一个简单的购物车程序
    【servlet3.0新特性】Annotation注解配置
    用Servlet实现聊天室设计
    PHP fopen和fwrite函数实现创建html页面
    Django框架 之 view视图
    Django框架 之 URLconf
    Django框架 之 模板语言
    Django框架 之 ORM 常用字段和参数
  • 原文地址:https://www.cnblogs.com/ritian/p/5409400.html
Copyright © 2011-2022 走看看