別のビューコントローラー (vc2) をサブビューとして追加したビューコントローラー (vc1) があります。サブビュー (vc2) に含まれるビュー (tappingView) をタップすると、UITapGestureRecognizer がトリガーされます。最初のビューコントローラー(vc1)からではなく、サブビューコントローラー(vc2)内でこのタップを処理したいのですが、ビューをクリックするとクラッシュし続けます。
階層の要約は次のとおりです。
-vc1
--vc2
---tappingView
そして、ここにコードのサンプルがあります:
ViewController1 (viewDidLoad):
- (void)viewDidLoad
{
ViewController2 *vc2 = [[ViewController2 alloc] init];
[[self view] addSubview:[vc2 view]];
}
ViewController2 (viewDidLoad):
- (void)viewDidLoad
{
UIView *tappingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 60.0, 80.0)];
[[self view] addSubview:tappingView];
UITapGestureRecognizer *tapGestureRecognize = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureRecognizer:)];
[tappingView addGestureRecognizer:tapGestureRecognize];
}
ViewController2 (singleTapeGestureRecognizer:) :
- (void)singleTapGestureRecognizer:(id)sender {
NSLog(@"Tap gesture");
}
ビュー (tappingView) をクリックすると、クラッシュ (BAD_ACCESS) が発生し続けます。
誰でも理由がわかりますか?