課題
UIButtonTap時の処理を他クラスで行う
→ UIButtonをViewに書いているがTap時の処理はViewControllerに書きたい的な状況
解決方法
- UIButtonの
addTarget
に対象のクラスを指定 - 対象のクラスに
action
で指定したFunctionを記述
View.h
: Buttonを持っている画面
ViewController.h
: ButtonTap時の処理を記述
objective-c
View.h
#import "ViewController.h"
- (void)makeBtn:(ViewController *)ViewController;
View.m
- (void)makeBtn:(ViewController *)ViewController {
UIButton* button = [[UIButton alloc] init];
[button addTarget:ViewController action:@selector(tapButton:) forControlEvents:UIControlEventTouchUpInside];
}
ViewController.h
#import "View.h"
- (void)tapButton:(UIButton *)button;
ViewController.m
- (void)testFunc{
View* view = [[View alloc] init];
[view makeBtn:self];
}
- (void)tapButton:(UIButton *)button {
NSLog(@"tapped!!!");
}
Swift
今度書く。