画面遷移したときに下部のタブバーを一時的に消す
ナビゲーションコントローラをタブバーと組み合わせて使っている時、プッシュ遷移した先の画面ではタブバーを消して全画面表示したいケースはあります。設定が終わるまでタブバーによる遷移を避けたいときなどがそうです。遷移先から戻ってきたときには、またタブバーを表示する動作とのセットです。
その場合、「遷移元のビューコントローラ」で、「自分のhidesBottomBarWhenPushed
プロパティ」をtrue
にセットします。これで
- 遷移先に移動するときにタブバーが隠れる
- 遷移先から戻ってくるときにタブバーが再表示される
がまとめて実現できます。prepareForSegue()
で書いた場合の例を下に載せます。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { switch segue.identifier { case "ToDetailView"?: hidesBottomBarWhenPushed = true // tabBarController?.hidesBottomBarWhenPushed = true // NG。遷移先のviewがサイズ調整されない default: break } }
ありがちなのは、遷移元ビューコントローラのhidesBottomBarWhenPushed
プロパティを操作するのではなく、タブバーコントローラのプロパティを操作してしまうミスです。これだと、遷移先画面でベースのビューがサイズ調整されないまま表示され、使いづらくなってしまいます。
気をつけましょう(自分)