UI_Target/action 设计模式

RootView.m 中

    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    button.frame = CGRectMake(100, 100, 100, 40);
    [button setTitle:@"Target" forState:UIControlStateNormal];
    [self addSubview:button];

    // addTarget:self.controller 原来是 self
    // 方法 RootViewButtonDidClicked 在 ViewController.m 里面实现
    [button addTarget:self.controller action:@selector(RootViewButtonDidClicked:) forControlEvents:UIControlEventTouchUpInside];

RootView.h 中

设置属性

@property (nonatomic, assign)UIViewController *controller;

ViewController.m

// 点击事件
- (void)RootViewButtonDidClicked:(UIButton *)sender
{
    NSLog(@"hello");
}

- (void)viewDidLoad {
    [super viewDidLoad];

    // 设置控制器
    self.rootView.controller = self;

}
原文地址:https://www.cnblogs.com/gcczhongduan/p/5262048.html