web-dev-qa-db-ja.com

ナビゲーションバーを非表示

3つのビューがあります。 (1番目、2番目、3番目など)。 2番目のビュー(ロードビューメソッドがある)を1日にプッシュしました。 2番目のビューでは、initWithFrame(UIWebViewから継承)を使用して3番目を作成しました。 2番目のビューでは、self.view = 3rd viewと書きました。

次に、3番目のビューで2番目のビューのナビゲーションバーを非表示にします(つまり、ユーザーが3番目のビューの画面、つまりUIWebViewにタッチしたとき)。ジェスチャーを使用してタッチ認識を取得しましたが、ナビゲーションバーを非表示にできません。

3番目のビューはself.navigationControllerをサポートしていません。また、2番目のビューのオブジェクトを3番目に作成しても、ナビゲーションバーは非表示になりません。誰かが私を助けてくれますか?

18
Kuldip

OK。そのため、そのタブのナビゲーションコントローラを作成した直後に、ナビゲーションバーを非表示に設定する必要があります。 (私が知る限り)ビューコントローラーをプッシュした後は、これを調整できません。

最初のビューの上部にナビゲーションバーを配置しない場合は、これをappDelegateで使用して、最初にナビゲーションコントローラーを宣言します。

localNavigationController = [[UINavigationController alloc] initWithRootViewController:theViewController];
[localNavigationController setNavigationBarHidden:YES animated:YES];

その後のビューを非表示にする場合は、後続のビューのviewControllerが必要であり、追加する必要があります

[[self navigationController] setNavigationBarHidden:YES animated:YES];

これを呼び出す直前:

[[self navigationController] pushViewController:theThirdViewController animated:YES];

お役に立てれば。

32
Nabou

これを実装します。

[self.navigationController setNavigationBarHidden:YES animated:YES];

3番目のビューを割り当てる前。それはself.view = 3番目のビューです

17
Sisu

コードはviewWillAppearメソッドに追加する必要があることに注意してください。

-(void) viewWillAppear:(BOOL)animated
{
      self.navigationController.navigationBar.hidden = YES;
}
0
KeithTheBiped