1

次のように、UIWebView に UIGestureRecognizer を正常に実装しました。

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self 
                                                                          action:@selector(handleTap)];
    tap.numberOfTapsRequired = 1;

    [myUniqueWebView addGestureRecognizer:tap];

次のコードには間違いがありますが、ロジックは次のとおりです。ビューをタップして NavBar を非表示にしたいのですが、既に非表示になっている場合は、同じロジックを使用して表示したいと考えています。そして、それは機能していません:

-(void) handleTap {
    NSInteger didHideNavBar;
    didHideNavBar = 0;
    if ((didHideNavBar = 0)) {
        [self.navigationController setNavigationBarHidden:YES animated:YES];
        didHideNavBar = 1;
        NSLog(@"tap1");
    } 
    if ((didHideNavBar = 1)) {
        [self.navigationController setNavigationBarHidden:NO animated:YES];
        NSLog(@"tap2");
    }
}

Xcode に「tap2」メッセージが表示されますが、何も起こりません。

4

4 に答える 4

0
-(void) handleTap {

    BOOL isHidden = (parentViewController.navigationController.navigationBar.alpha == 0);
    self.navigationController.navigationBar.alpha = (isHidden) ? 1 : 0;
}
于 2012-06-12T13:07:43.863 に答える
0

didHideNavBarこんにちは、静的にしてください。handleTapメソッドが呼び出されるたびに、値ゼロが に割り当てられるためdidHideNavBarです。

この変更を行います

static NSInteger didHideNavBar = 0;
于 2012-06-12T12:40:56.367 に答える