2

別のビューコントローラー (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) が発生し続けます。

誰でも理由がわかりますか?

4

4 に答える 4