3つのビューがあります。 (1番目、2番目、3番目など)。 2番目のビュー(ロードビューメソッドがある)を1日にプッシュしました。 2番目のビューでは、initWithFrame
(UIWebViewから継承)を使用して3番目を作成しました。 2番目のビューでは、self.view = 3rd viewと書きました。
次に、3番目のビューで2番目のビューのナビゲーションバーを非表示にします(つまり、ユーザーが3番目のビューの画面、つまりUIWebViewにタッチしたとき)。ジェスチャーを使用してタッチ認識を取得しましたが、ナビゲーションバーを非表示にできません。
3番目のビューはself.navigationController
をサポートしていません。また、2番目のビューのオブジェクトを3番目に作成しても、ナビゲーションバーは非表示になりません。誰かが私を助けてくれますか?
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];
お役に立てれば。
これを実装します。
[self.navigationController setNavigationBarHidden:YES animated:YES];
3番目のビューを割り当てる前。それはself.view = 3番目のビューです
コードはviewWillAppearメソッドに追加する必要があることに注意してください。
-(void) viewWillAppear:(BOOL)animated
{
self.navigationController.navigationBar.hidden = YES;
}