5种传值方式

//1.传值方式
    //1.属性传值: 从前一个页面向后一个页面传值
    //a.在后一个页面, 根据传值的类型和个数, 写属性
    //b.在前一个页面, 为属性赋值
    //c.在后一个页面, 使用值

    //2.代理传值: 从后一个页面向前一个页面传值
    //后一个页面(找代理)
    //a. 制订协议
    //b. 写delegate 属性
    //c. 在合适的时候, 让代理协议执行方法

    //3.前一个页面(成为代理)
    //a.建立关系
    //b.遵守协议
    //c.实现协议方法

    //4.单例传值: 多个页面间的传递
    //a.创建单例类
    //b. 根据参数的个数和类型, 在单例中写属性
    //c. 内容存入单例
    //d. 从单例中取内容
    //缺点:
    //a.创建对象时, 必须使用单例方法, 不能使用 alloc + init
    //b.单例到程序结束才释放, 内部不能放过大的数据.(应用从头到尾都要用, 就设置为单例)

    //5.block 传值: 从后一个页面到前一个页面(只要能写成代理传值,都可以写成 block 传值)(一般更简单)
    //后一个页面
    //a.对 block 类型, 重命名
    //b.写 block 属性
    //c.在合适的 时候, 调用 block

    //前一个页面
    //a.为 block 赋值

    //求两个整数之和的 block
    //前面两个值表示, 参数类型; 后面表示参数
//    int(^sum)(int, int) = ^(int a, int b) {
//        return a + b;
//    };
//    NSLog(@"%d", sum(2,3));
    //重命名,参数类型重命名
    typedef int(^Sum)(int, int);

    Sum sum = ^(int a, int b) {
        return a + b;
    };
    sum(2,5);//调用使用

    Box *box = [Box defaultBox];
    NSLog(@"%@", box);

    Box *box1 = [Box defaultBox];
    NSLog(@"%@", box1);


//    Box *box3 = [[Box alloc] init];//错误的
    //比如:
//    [UIScreen mainScreen]
//    [UIApplication sharedApplication]




    //UIViewController的生命周期(一个对象从创建到消亡的过程)
    //1.alloc + init
    //2.loadView
    //3.viewDidLoad
    //4.viewWillAppear
    //5.viewDidAppear
    //6.view WillDisapper
    //7.viewDidDisapper
    //8.dealloc
    //注:1238, 只会执行一次; 4567:执行多次

    return YES;
}
 多练!!!!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值