2012-01-19 57 views
2

xcode 4.2とiOS 5を使用してルートコントローラと他の4つのビュー(UITableビュー)でナビゲーションバーを使用すると、最初のルートビューコントローラでナビゲーションバーを非表示にし、 。UINavigation Controllerナビゲーションバーを隠す

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

運任意のアイデア以下しようとしました

+0

あなたはどのような問題を抱えていますか?それは正常に動作するはずです... – sergio

+0

@sergioそのすべての単一のビューを越えて、私はちょうどそれがルートコントローラービュー(メインコントローラー)で "のみ"を非表示にしたいのナビゲーションバーを隠して.... ....私は何かが不足していますか?すべてのビューは現在、コードの方法でナビバーが消えてしまいました。 – codejunkie

答えて

3

あなたが目指している通りにナビゲーションバーを隠す/表示するには、このコードをルートコントローラ(または非表示のナビゲーションバーを持っているすべてのビューコントローラ)で使用します。 :

- (void)viewDidLoad { 
    ... 
    [self.navigationController setNavigationBarHidden:YES animated:NO]; 
    ... 
} 

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

- (void)viewWillDisappear:(BOOL)animated { 
    [self.navigationController setNavigationBarHidden:NO animated:animated]; 
    ... 
} 

これは単なる解決方法です。ルートコントローラではviewWillDisappearを未定義のままにしておき、ルートコントローラにはviewWillAppearを定義しておくと便利です。

[1]ルートコントローラ以外のナビゲーションバーを非表示にすると、ナビゲーション階層の途中で突き出ることがあります。また、それは突然、ルートビューよりも、何のためのナビゲーションバーを非表示にするiOSアプリで直感的なナビゲーションに反している。)

+0

クールな@sergioなぜ私はこのことについて考えなかったのですか... thx男。 – codejunkie

1

あなたは

self.navigationController.navigationBar.hidden = YES; 

このコードを使用することによって、これを非表示にすることができますビューでこのコードを使用しませんでした負荷

関連する問題