UIButton を含む単純なフッター バーを構築する別の UIView クラスがあります。
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:CGRectMake(0, 410, 320, 50)];
if (self) {
int buttonHeight = self.frame.size.height;
int buttonWidth = 70;
int nextBtnPosX =0;
int nextBtnPosY =0;
self.backgroundColor =[UIColor colorWithRed:254.0/255.0 green:193.0/255.0 blue:32.0/255.0 alpha:1.0];
[self sendSubviewToBack:self];
UIButton *nextBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[nextBtn setTitle:@"Next" forState:UIControlStateNormal];
nextBtn.frame = CGRectMake(nextBtnPosX, nextBtnPosY, buttonWidth, buttonHeight);
[nextBtn addTarget:self.superview action:@selector(GoToNextPage) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:nextBtn];
}
return self;
}
このフッター ビュー クラスを各ビューにサブビューとして追加するいくつかの ViewControllers があります。
UIView *newFooter = [[theFooter alloc] init];
[self.view addSubview:newFooter];
ここで、フッター ビュー内の実際の UIButton は、追加先の viewController ごとに異なるタグを持つ必要があります。
したがって、IBAction を実際のビュー コントローラーに追加し、フッター ビューを介してこれを呼び出すのが最善だと思います。
しかし、ここで問題が発生しました。親コントローラーを呼び出して、addTarget からフッター サブビュー内から IBAction(GoToNextPage) を初期化するにはどうすればよいですか?
また、フッター サブビュー内にすべてを配置して、必要なターゲットを渡す方が簡単でしょうか。