【iOS学步】block回调-2
1.带参数的block
//TestView.h @property (nonatomic, copy) void (^changeColor) (NSString *test); //TestView.m - (void) buttonAction (UIButton *sender){ self.changeColor(@"Click to change color."); } //ViewContrller.m self.secVC = [[SecondViewController alloc]init]; //test for 带参数的block属性 self.secVC.changeColor = ^(NSString *str) { NSLog(@"jump to: %@", str); self.view.backgroundColor = [UIColor greenColor]; };
2.block作为函数参数
//TestView.h - (void) parameterBlock:(void(^)(NSString *))block;//声明带block参数的函数,这个block参数是参数为NSString的block //TestView.m - (void) buttonAction (UIButton *sender){ self.changeColor(@"Click to change color."); } - (void) parameterBlock:(void(^)(NSString *)block){ self.changeColor = block; //将参数block赋值给属性changeColor的block,则上面触发changeColor的时候,就会触发block } //ViewController.m //test for block为参数的函数 [self.secVC parameterBlock:^(NSString *str) { NSLog(@"Test for BlockParameter %@", str); }];
3.宏定义block