Blocks 用法

来源:互联网 发布:手机淘宝如何开直播 编辑:程序博客网 时间:2024/05/16 06:07


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 方法块
    }];   // 这样就把第二个界面的对象传递了过了,也就传递了该对象的所有属性。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 七个月宝宝脾胃虚怎么办 海岛奇兵点错了怎么办 螳螂的脚断了怎么办 海岛奇兵打不过玩家怎么办 海岛奇兵资源满了怎么办 海岛奇兵杯越来越多打不玩家怎么办 海岛奇兵控杯技巧 杯数太高怎么办 海岛奇兵发现求救信号怎么办 海岛奇兵被打了怎么办 小鱼翅卡喉咙了怎么办 鱼翅卡在喉咙里怎么办 斗鱼身份证被使用怎么办 做的鱼丸太腥了怎么办 做鱼丸太稀了怎么办 斗鱼手机号换了怎么办 斗鱼直播掉帧怎么办 手机一直卡顿点不动怎么办呢 斗鱼直播分值底怎么办 斗鱼6000鱼丸怎么办卡 斗鱼直播没人看怎么办 淘宝直播间没人气怎么办 挂水了还是有热度怎么办 陌陌工会不结算工资怎么办 滴滴给了差评怎么办 饿了么星级低怎么办 滴滴乘客给低星怎么办 蘑菇街自动收货前还没到怎么办 小主播人气太少别人看不到怎么办 税收分类编码不可用怎么办 斗鱼鱼翅充错了怎么办 苹果指纹摔坏了怎么办 小米5指纹坏了怎么办 苹果5s指纹失灵怎么办 学生赌博输了3万怎么办 电脑录屏没有声音怎么办 别人说你没有他美怎么办 没有你我怎么办歌词是什么意思 要是没有他我怎么办啊歌词 用喀秋莎保存的视频黑屏怎么办 电脑杀毒之后开不了机怎么办 夫妻离婚分房分车怎么办