Navigation BarとTab Barを非表示にする
きっとまた悩むのでメモ
やりたかったこと
一部の画面のみNavigationBarやTabBarを非表示にしたい
問題点
Storyborard上のSimulated Metricsで以下のようにTop BarとBottom BarをNoneに設定すると、Storyboard上ではバーが消えるのに実行すると消えない
原因
Storyborard上のSimulated Metricsは
あくまでStoryBoard上でのレイアウトを助けるもので、実行時には無視される
らしい😱
Xcode4.6のSimulated Metricsについてメモ。 - Object for cutie
解決法:NavigationBarを非表示にする
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.setNavigationBarHidden(true, animated: animated) } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) self.navigationController?.setNavigationBarHidden(false, animated: animated) }
解決法:TabBarを非表示にする
ViewControllerのLayoutにあるHide Button Bar on Pushにチェックを入れる
おまけ
ToolBarを非表示にしたいときは、上記のviewWillAppearとviewWillDisappearに以下を記述する
// viewWillAppear self.navigationController?.setToolbarHidden(true, animated: animated) // viewWillDisappear self.navigationController?.setToolbarHidden(false, animated: animated)