呼ぶタイミングも大事なNavigationBarの表示・非表示切り替え

NavigationControllerを基本としたアプリの場合でも、HOME画面ではNavigationBarを表示させたくない時があります。今回はそんな時の設定について。
まずはじめに、NavigationBarの表示は
[self.navigationController setNavigationBarHidden:NO animated:NO];
と書くだけでOKです。
逆に非表示にする時には
[self.navigationController setNavigationBarHidden:YES animated:NO];
となります。animatedをYESにすれば、その通りアニメーションが入ります。
HOME画面
- (void)viewDidLoad { [self.navigationController setNavigationBarHidden:YES animated:NO]; // ナビゲーションバー非表示 }
viewが読み込まれたタイミングで一度だけ非表示の指示をだします。
HOME以降の画面
-(void)viewWillAppear:(BOOL)animated{ [self.navigationController setNavigationBarHidden:NO animated:YES]; // ナビゲーションバー表示 } -(void)viewWillDisappear:(BOOL)animated{ [self.navigationController setNavigationBarHidden:YES animated:YES]; // ナビゲーションバー非表示 }
viewWillAppearは画面を開くたび、そしてViewが表示される前に呼ばれます。ここで、ナビゲーションバーを表示するように指示します。そして、viewWillDisappearは画面を離れる前に呼ばれますので、ここで再びNavigationBarを非表示にしておきます。
HOME画面だけで非表示の指示を出すと、子画面から戻ってくるときにNavigationBar部分に黒い隙間が見えてしまいますので、子画面で処理を入れているのがポイントです。
[sc name=”ios”][sc name=”engeneer”]
SPONSER
SHARE
YouTube
PROFILE
