传值方式(block, 属性,代理 ,单例)

最近在工程练习中写了大量单例传值的方法,然后回想起自己习用的传值方式, 也就四种, 如题目; 下面是对这四种传值方式的一个总结

1.属性传值##从一个页面向后一个页面传值

a.在后一个页面, 根据传值的类型和个数, 写属性

//在.h文件中
@property (nonatomic, copy)NSString *yourName, *herName;

b.前一个页面, 为属性赋值

//在前往下一个页面时, 
SecondViewController *secondVC = [[SecondViewController alloc] init];
    secondVC.yourName = herTF.text;
    secondVC.herName = yourTF.text;

2.代理传值: ##从后一个页面向前一个页面传值

2.1 后一个页面(找代理)
a.制定协议
b.写delegate属性
c.在合适的时候, 让代理执行协议方法

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

3.block传值

从后一个页面向前一个页面(能写出代理传值, 都可以转化成block传值)
3.1 后一个页面
a.对block类型, 重命名
b.写block属性
c.在合适的时候, 调用block

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

4.单列传值
a.创建单例类
b.根据参数的个数和类型, 在单例类中写属性
c.内容存入单例
d.从单例中取内容
缺点
a.创建对象时, 必须使用单例方法, 不能使用alloc + init;
b.单例到程序结束才释放, 内部不能存过大的数据

//单列的创建方式
+ (Box *)defalutBox    {
static Box *box = nil;
if (box == nil) {
    box = [[Box alloc] init];
}
return box;

}

由于代码在不同的页面, 不好整理, 所以就暂时不写代码了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值