关于block的简单用法

来源:互联网 发布:中国大数据协会 编辑:程序博客网 时间:2024/06/15 08:53

第一种:初始化

 ChooseMessageVC

.h     typedef void(^block)(NSString *str);

-(instancetype)initWithBlock:(block) block;


.m @property (nonatomic,copy)block ablock;

-(instancetype)initWithBlock:(block) block

{

    if (self = [super init])

    {

        _ablock = block;

      }

    return self;

}

在返回的时候将值传过去

_ablock(model.user_id);

  [self.navigationController popViewControllerAnimated:YES];


上个界面调用的block的初始方法:

 ChooseMessageVC *choose = [[ChooseMessageVC alloc] initWithBlock:^(NSString *str) {

                cell.RightLab.text= str;

            }];



在上个界面接收到这个界面传过去的值才会 跳转上个界面


第二种:Property一个block 属性


.h

@property (nonatomic, copy) void(^MySubOrderBlock)(BOOL SubId);


.m

//在需要值传递的地方添加

  赋值  if (_MySubOrderBlock) {

                    _MySubOrderBlock(1);

                }

然后在想要用到这个值得时候用创建对象调用该属性的   

 _secondViewController.MySubOrderBlock = ^(BOOL SubId){

        if (SubId) {

            weaktabBar.hidden = YES;

            [weakSelf createLeftBarButtonImageWithType:BarButtonImageTypeBack];

        }else{

            weaktabBar.hidden = NO;

            [weakSelf createLeftBarButtonTitle:@""];

        }

    };







0 0