13

私は多くの投稿を見つけましたが、それでも解決策はありません。最初のナビゲーションバーを非表示にしようとしていますUIViewControllerが、2番目のナビゲーションバーを表示したいと思いUIViewControllerます。これが私のストーリーボードです:

ここに画像の説明を入力してください

メインビューコントローラーの推定トップバーをオフにすると、ストーリーボードに表示されなくなりますが、アプリを実行すると表示されます。NavControllerのNavigationBarで同じことを行うと、3つすべてで表示されなくなります(すべてのナビゲーションバーが継承されていないため)。

ScrollViewV View ControllerでNavBarを表示したいのですが、で非表示にしMainViewControllerます。

すべてのコントローラーには対応する.hまたは.mファイルがありますが、これをプログラムで行う方法について混乱しています。他に何か見る必要がある場合はお知らせください。どうもありがとうございました!

4

5 に答える 5

43

mainViewControllerで、次のことを実行できます。

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:YES animated:animated];
    [super viewWillAppear:animated];
}

このViewControllerを非表示にする場合は、ナビゲーションバーを表示することをお勧めします。そのためには、次のようにします。

- (void)viewDidDisappear: (BOOL)animated
{
    [self.navigationController setNavigationBarHidden:NO animated:animated];
    [super viewDidDisappear:animated];
}
于 2012-10-31T21:17:33.033 に答える
2

ストーリーボードに物事を残したい場合は、ユーザー定義属性を編集しnavigationController.navigationBarHiddenてブール値をチェックするように設定します。

于 2014-08-15T00:26:05.737 に答える
0
self.navigationController.navigationBarHidden = YES;
于 2012-10-31T21:20:01.290 に答える
0

ナビゲーションを表示したいコントローラーに以下を追加する必要があることに気づきました。

[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillAppear:animated];
于 2013-09-03T13:36:24.930 に答える
0

Swiftでこれを行う方法を知りたい人はいますか?

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    self.navigationController?.navigationBar.hidden = true
}
于 2016-08-30T07:38:36.297 に答える