Blocks 用法


Blocks 语法 实现传值

在需要传递信息的ViewController里边声明blocks变量。

如下:

void (^blocks) (int flag, NSString * string);   // 变量名为blocks  ,, 后边的两个变量为需要传递的信息
void (^blocks2) (SecendViewController * sec);  // 变量名为blocks2

并添加一个  -(void) setBookName :(void (^) (SecendViewController * sec))name; 方法

void (^) (SecendViewController * sec)我理解的是可以当做一个一般的类型,比如NSString来看待

在.m文件里边

-(void) setBookName :(void (^) (SecendViewController * sec))name
{
    [blocks2 release];   // 这里边也是符合内存管理的
    blocks2 = [name copy];
}

在需要推出次界面的的方法里边:

if (blocks2) {

        blocks2(self);   // 我理解的是就如同一个普通的函数一样,在此时去回调blocks2也就是上边name的方法块(方法块在需要接受信息的controller里边)
}


在接收的ViewController里边,可以再推进到第二个界面的时候用创建的对象去调用setBookName :方法

SecendViewController * secendVC = [[SecendViewController alloc]init];

[secendVC setBookName:^(SecendViewController *sec) {
        // name 方法块
    }];   // 这样就把第二个界面的对象传递了过了,也就传递了该对象的所有属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值