4

現在、ナビゲーションコントローラーでQLPreviewControllerを使用しています。(pushViewController)

ナビゲーションバーを非表示にするには、UITapGestureRecognizerを使用します。ユーザーは、ワンタッチ(タップ)でナビゲーションバーを表示/非表示にできます。これはiOS5でうまく機能しました

- (void)viewWillAppear:(BOOL)animated {
   [super viewWillAppear:animated];

   UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
   [tapRecognizer setNumberOfTapsRequired:1];
   [tapRecognizer setDelegate:self];
   [[self view] addGestureRecognizer:tapRecognizer];
   [tapRecognizer release];
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}

- (void)tapped:(UIGestureRecognizer*)gestureRecognizer
{
    //hide -/- show navigation bar
    [[self navigationController] setNavigationBarHidden:![[[self navigationController] navigationBar] isHidden] animated:YES];
}

しかし、リリースされたバージョンのiOS 6では、タップが完全に無視されるようになったため、ナビゲーションバーを非表示にすることはできなくなりました。

ナビゲーションバーを非表示にしたい理由は何ですか?

.nu​​mbersドキュメントを開くと、ナビゲーションバーはナビゲーションバーの下の「シートボタン」を非表示にします。

Ty。

4

1 に答える 1

7

iOS 6以降、QLPreviewControllerは実際には完全に別個のアプリです(別個のプロセスとすべて)

AppleはそのためにXPCを使用しています。

=>それを押すと、ウィンドウとジェスチャーレコグナイザーを含むアプリ全体がbgに移動します

于 2012-11-11T15:17:11.650 に答える