数学講師2882427 views
LaTeX961590 views
小学理科719541 views
教育149462 views
ヒストリア289845 views
中学理科1630106 views
英語612943 views
高校化学2922839 views
高校日本史190487 views
いろは3008160 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

を書く。