- 自定义CustomView,在头文件中提供block回调函数
@property (nonatomic, copy) void(^buttonClickBlcok)(NSInteger index);
- 给其中的UIButton绑定事件监听器
[button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
- 自定义View监听到按钮点击事件后,调用回调函数
- (void)buttonClick:(UIButton *)button
{
if (self.buttonClickBlcok) {
self.buttonClickBlcok(button.tag);
}
}
- CustomSuperView中添加CustomView,并公开customViewButtonClickBlcok方法
@property (nonatomic, strong) void(^customViewButtonClickBlcok)(NSInteger index);
在其内部实现以下内容:
@property (nonatomic, strong) CustomView *customView;
__weak CustomSuperView *weakSelf = self;
[_customView setButtonClickBlcok:^(NSInteger index) {
if (weakSelf.customViewButtonClickBlcok) {
weakSelf.customViewButtonClickBlcok(index);
}
}];
- 最终控制器调用回调函数
@property (nonatomic, strong) CustomSuperView *customSuperView;
[customSuperView setCustomViewButtonClickBlcok:^(NSInteger index) {
//TODO...
NSLog(@"-------%zd",index);
}];
实现:控制器->自定义View->自定义View中Button的事件通过Block的调用