iOSSwiftアプリでタブバーを非表示にする方法を見つけようとしています。派手なアニメーションなどは気にしません。ViewDidLoad()関数に入れることができるものです。
回答:
これをViewDidLoad()
メソッドで使用するだけです。
self.tabBarController?.tabBar.hidden = true
スウィフト3.0、4.0、のために5.0:
self.tabBarController?.tabBar.isHidden = true
または、次の方法でタブバーのz位置を変更できます。
self.tabBarController?.tabBar.layer.zPosition = -1
もう一度表示したい場合は、次のようにします。
self.tabBarController?.tabBar.layer.zPosition = 0
受け入れられた回答は機能しますが、他のビューへの遷移には途切れ途切れのアニメーションがあります(タブバーアニメーション)
また、Kalpeshのソリューションは完全に機能しましたが、すべてのビューコントローラーにhidesBottomBarWhenPushed(ストーリーボードを確認)の属性があることがわかりました。タブバーを非表示にする場合は、それにチェックマークを付ける必要があります。そしてそれはうまくいくでしょう。
更新:これが既知のものかどうかはわかりませんが、アップルのドキュメントページには次のように書かれています。
これは、最上位のビューコントローラー(ナビゲーションスタックの最初のビューコントローラー)でhidesBottomBarWhenPushedの基本値を設定する必要があることを意味すると思います。これをtrueに設定すると、他のビューコントローラーに対してfalseまたはtrueに変更できます。スタック。ただし、最上位のビューコントローラーのhidesBottomBarWhenPushed値がfalseの場合、ナビゲーションスタック上の他のコントローラーのタブバーは表示されません。
プッシュセットの前コントローラー.hidesBottomBarWhenPushed = true
let objCreateEventVC = CreateEventVC()
objCreateEventVC.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(objCreateEventVC, animated: false)
setViewControllers
tabBarのisHiddenプロパティを設定する必要はありません。
単純に、ViewController(StoryBoard内)->属性インスペクター-> [View Controller]セクションで、[Hide Bottom Bar onPush]チェックボックスを選択します。これは魅力のように機能します。
'isHidden'の方法を使用する場合は、多くの処理を行う必要があります。つまり、戻ったときに再び表示されるようにし、tabBarを非表示にした後に下部の空のスペースを削除します。
Hide Bottom Bar on Push
不快なアニメーション、imoがあります。
これは、Swift 4.0、4.1、4.2、5.0以降のプログラムによる方法です>:
tabBarController?.hidesBottomBarWhenPushed = true
または
hidesBottomBarWhenPushed = true
ナビゲーションバーとタブバーを非表示にするには、次の関数を使用します。
var tabBarHeight : CGFloat!
func fullScreenAction(){
if navigationController?.isNavigationBarHidden ?? false {
//Show navigationBar
navigationController?.setNavigationBarHidden(false, animated: false)
//Show tabBar
tabBarController?.tabBar.isHidden = false
//Update the height of tabBar
if (!(tabBarController?.tabBar.frame.size.height.isEqual(to: 0))!) {
tabBarHeight = self.tabBarController?.tabBar.frame.size.height
}
tabBarController?.tabBar.frame.size.height = tabBarHeight
} else {
//Hide navigationBar
navigationController?.setNavigationBarHidden(true, animated: false)
//Hide tabBar
tabBarController?.tabBar.isHidden = true
//Update the height of tabBar
tabBarHeight = tabBarController?.tabBar.frame.size.height
tabBarController?.tabBar.frame.size.height = 0
}
}
画面の向きがtabBarの高さも変更した場合は、次の関数を使用して全画面を終了し、高さのサイズを変更します。
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
if navigationController?.isNavigationBarHidden ?? false {
navigationController?.setNavigationBarHidden(false, animated: false)
tabBarController?.tabBar.isHidden = false
}
}
お役に立てば幸いです。
vc.hidesBottomBarWhenPushed = true
仕事をする必要があります。タブバーを手動で表示および非表示にしないでください。