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;
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];