お?いけるくさい?

iPhoneアプリエンジニアのたまごです。いっちょまえエンジニア目指してちいさな発見や学んだことを覚え書きしていきます!Objective-C/iOS/開発

NavigationBarの挙動!

UINavigationControllerを使った画面遷移で

上部のNavigationBarを表示/非表示にする方法はわかるんやけど、

今回やりたいことが

 

①はじめのテーブルビューでは上部のバーは隠れていて、(非表示)

②セルを選択して次の画面にいくと上部のバーが出現して、(→表示)

③その上部のバーから元のテーブルビューに「戻る」と

④上部のバーがまた隠れる。(→非表示)

 

という挙動。

 

色々調べてわかったこととして、

  • NavigationControllerは基本的に前の画面で指示を与える
  • 「戻る」ボタンは中の文字くらいはカスタムできる

くらい(ω・`))キョロ(( ´・ω)

 

やりたいことはsetNavigationBarHiddenをYESにしたいだけなんだよーう。

メソッドを作ってみたりもしたけど、

「(だから)いつ呼ぶんだよこれ!

っていう、そう、つまりは、よぶタイミングがわからないのです。

 

困り果ててトレーナさんにきいてみたところ、

ViewWillAppearに書いたりしてみた?」

とのこと。

 

むむ?ViewWillAppear?

 

「ViewDidLoadは はじめに画面が現れる1回しか呼ばれないけど、

 ViewWillAppearっていうのは

 画面が一番上に現れる毎回のタイミング で呼ばれるよ(∀`*)」

 

とのことー!!! 

なんてわかりやすい!

 

というわけで、やってみたところ、できましたー!!∩(´∀`)∩パッパラー

(ただ、戻るときにNavigationBarの部分が一瞬黒く見える)

 

これ以外にも方法はあるのかもしれないけれど、

とりあえずViewWillAppearの使い方としてメモ。

 

*ソース*

f:id:simamikiii:20120808180110p:plain