MathPython494013 views
小学社会309124 views
数学講師2867555 views
LaTeX959099 views
高校国語786623 views
英語610172 views
世界の国562102 views
高校物理158886 views
高校日本史190117 views
高校化学2917196 views

Swiftでタブバーのバーを隠す(ナビゲーションのプッシュ前後でバーを出したり隠したりする)

SwiftのUIViewControllerでタブバーを隠すには

self.tabBarController?.tabBar.isHidden = true

とする。海外の一部サイトでhidesBottomBarWhenPushedを使った解説もあるが、Swift 4〜では上のコードで問題ない。

ナビゲーションで戻るとタブバーが隠れたままになる問題

ナビゲーションで画面遷移している場合、上のコードは不完全である。タブバーを隠した後、戻るボタンで一つ前の画面を表示すると、その画面でもタブバーが隠れたままになる。

例えばAからBに遷移する状況で、Aはタブバーを表示し、Bはタブバーを表示しないとする。

A → B

A: show
B: hide

Bで上のコードを書くと、BからAに戻ったとき、Aでもタブバーが隠れてしまう。そこでAのviewWillAppear

self.tabBarController?.tabBar.isHidden = false

を書く。