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

を書く。

広告

広告

広告

技術

言語

高校理系

高校文系

中学

小学

エッセイ

姉妹サイト