宽容他人,放过自己。

block传值快速创建

Posted on By anchoriteFili

1.方法传值(正向逆向都可以
#pragma mark 一级页面创建block方法,在二级页面调用这个方法即可
- (void)getName:(NSString *)nameOne withBlcok:(void(^)(NSString *name,int age))person;

#pragma mark 在.m文件中对block 进行赋值
- (void)getName:(NSString *)nameOne withBlcok:(void(^)(NSString *name,int age))person {
    person(nameOne,18);
}

#pragma mark 直接在二级页面使用方法即可
    ViewController *VC = [[ViewController alloc] init];
    [VC getName:@"赵本山" withBlcok:^(NSString *name, int age) {
        NSLog(@"name ==== %@",name);
        NSLog(@"age ==== %d",age);
    }];
2. 属性block传值
#pragma mark 属性block传值,直接使用属性进行传值,在二级页面创建属性,对属性赋值,即可直接进行,可将值传给一级页面
typedef void(^TestBlcok)(int one,int two);

#pragma mark 创建属性blcok
@property (nonatomic,copy) TestBlcok testBlock;

//.m文件中可以直接对属性block中参数进行赋值
self.testBlock(10,11);

#pragma mark 在二级页面中对这个block赋值可以直接激活这个block方法,达到激活block的目的
    FirstViewController *firstVC = [[FirstViewController alloc] init];
    
    firstVC.testBlock = ^(int one,int two) {
        NSLog(@"one ===== %d",one);
        NSLog(@"two ===== %d",two);
    };
    
    [self.navigationController pushViewController:firstVC animated:YES];