iOS开发页面之间的几种传值方式

@第一种:属性传值
应用场景: 从前一个页面向后一个页面传值
1.在后一个页面中写属性
2.在前一个页面中为属性赋值(在页面切换的时候)
3.在后一个页面使用值
@第二种:代理传值
应用场景: 从后一个页面向前一个页面传值
1.后一个页面要制定协议, 写delegate属性, 让delegate执行协议方法
2.前一个页面成为后一个页面的代理, 遵守协议, 实现协议方法
注: 属性传值和代理传值是线性的只能从前一个页面把值传给后一个页面, 或者从后一个页面把值传给前一个页面;
@第三种: 单例
单例是一种设计模式, 用单例模式设计出来的类生成的对象只能有一个.
使用单例需要注意的:
1.一旦用单例模式设计的类, 不能使用dealloc, 也不能使用init方式创建对象
2.单例内不要存过大得数据
(写个例子)使用单例的时候自己写创建对象的方法:

下面的代码是 .h文件中的声明

//创建对象的方法
//1.类方法
//2.返回值类型是当前类
//3.方法名以 shared/main/default + 类名

+ (CCDataHandle *)sharedDataHandle;

下面的代码是在 .m文件中的实现

/**
    static修饰的变量, 只能被初始化一次, 并且存放在静态区, 当程序结束内存才被释放
    *static CCDataHandle *dataHandele = nil;
 */
static CCDataHandle *dataHandele = nil;
+ (CCDataHandle *)sharedDataHandle {

    if (dataHandele == nil) {
        dataHandele = [[CCDataHandle alloc] init];
        //封装数据
        [dataHandele createData];
    }
    return dataHandele;
}

@第四种: block传值
应用场景: 只要能用delegate传值就能写成block传值, 从后一个页面向前一个页面传值;
1.在后一个页面, 重命名block类型, 写block属性, 调用block;
2.在前一个页面, 个block赋值
3.优化: 把block赋值封装起来

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值