コンテンツへスキップ →

呼ぶタイミングも大事な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”]

SHARE

無料メルマガ<特典付き>

個人開発・ビジネスについての有益な情報を無料メルマガでお届けします。

特典:個人開発の教科書<心得編>
これまでの個人開発経験を秘伝のタレ的な内容としてエッセンスをまとめました。35ページにわたる大ボリュームです。

個人開発のスキルアップにMENTA

MENTAはいろんなプロに相談できるNo1メンターサービスです。

僕自身もプロダクトの壁打ち・相談にのっています。個人開発でもコードレビュー、セキュリティ面のチェック、デザイン、広告、コンテンツマーケ、SNS集客について相談する、など使えます。

YouTubeでも個人開発ノウハウを発信中!

PROFILE

入江 慎吾
あらゆるスキルが学べるパーソナルメンターサービスMENTAの代表/個人開発が好きでこれまでに30個ほどのWEBサービスやアプリを作ってきました/福岡のWEB制作会社勤務→フリーランスエンジニア→法人立ち上げ→M&A億単位の売却を経験。 (詳しいプロフィール)

カテゴリー: 開発奮闘記