block的简单使用:点击按钮在另一个控制器内调用block内的代码

时间:2024-01-03 18:08:38

1、自定义一个继承于UIButton的按钮

2、声明block:

返回值类型   函数名  参数列表

typedef void (^ButtonBlock)(UIButton *);
@interface MyButton : UIButton @property(nonatomic,copy)ButtonBlock block;
- (void)addTapBlock:(ButtonBlock)block;
@end

3、重写button的点击事件的方法

- (void)addTapBlock:(ButtonBlock)block
{
    _block = block;
    [self addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
}
- (void)buttonAction:(UIButton *)button
{
    _block(button);
}

4、在视图控制器中调用button的block方法

[button addTapBlock:^(UIButton *button){
        
        NSLog(@"按钮被点击了");
        
    }];

参考资料