高校化学2915516 views
数学講師2862298 views
りんご197191 views
MathPython493120 views
高校倫理1434987 views
LaTeX958345 views
高校生物550226 views
高校国語786245 views
Computer365920 views
中学社会667457 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

を書く。