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

2018/03/23更新 カテゴリー:開発奮闘記 タグ:
  • このエントリーをはてなブックマークに追加

NavigationControllerを基本としたアプリの場合でも、HOME画面ではNavigationBarを表示させたくない時があります。今回はそんな時の設定について。

SPONSOR

まずはじめに、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部分に黒い隙間が見えてしまいますので、子画面で処理を入れているのがポイントです。

iPhoneアプリ開発のTips一覧はこちら

効率のいいiOSプログラミング習得法

独学でプログラミングをはじめてもう16年。
なかなか勉強が進まない人のために記事を書きました。

フリーランスエンジニアの稼ぎ方

  • このエントリーをはてなブックマークに追加
SPONSOR

PROFILE

プロフィール

入江 慎吾/サービス開発だけで生きていく
自分のサービスだけで自由に生きる。勢いで受託開発をすべてやめて、サービスだけ作って生きていくことを決めたフリーのエンジニア。得意を教えて副業にできるMENTAを開発中! (詳しいプロフィール)
WEBサービス・アプリ開発に役立つ情報をイリテクの入江がお届けします。プログラミング、UI/UXデザイン、SNS・ブログマーケティングなど、プロダクト開発だけで自由に生きていくための実践的な情報を配信しています。

PRODUCT

イリテクで開発したプロダクト

RELATION

関連する記事

SPONSOR

TAG

タグから記事をさがす