Antworten:
Sie können dies einfach in Ihrer ViewDidLoad()Methode verwenden.
self.tabBarController?.tabBar.hidden = true
Für Swift 3.0, 4.0, 5.0 :
self.tabBarController?.tabBar.isHidden = true
Oder Sie können die z-Position der Registerkartenleiste folgendermaßen ändern:
self.tabBarController?.tabBar.layer.zPosition = -1
und wenn du es nochmal zeigen willst dann:
self.tabBarController?.tabBar.layer.zPosition = 0
Die akzeptierte Antwort funktioniert, aber der Übergang zu einer anderen Ansicht hat eine abgehackte Animation (Die Registerkarte Leistenanimation)
Ich wollte auch hinzufügen, dass Kalpeshs Lösung perfekt für mich funktioniert hat. Ich fand heraus, dass jeder Ansichts-Controller ein Attribut für hidesBottomBarWhenPushed hat (siehe Storyboard). Wenn Sie die Registerkartenleiste ausblenden möchten, sollten Sie dies ankreuzen. Und es würde großartig funktionieren.
Update: Ich bin mir nicht sicher, ob dies bekannt ist, aber auf der Apple-Dokumentationsseite steht Folgendes:
Ich denke, dies bedeutet, dass Sie den Grundwert von hidesBottomBarWhenPushed am obersten Ansichts-Controller (dem ersten im Navigationsstapel) festlegen müssen. Sobald Sie diesen Wert auf true gesetzt haben, können Sie für die anderen Ansichts-Controller auf dem Befehl auf false oder true ändern Stapel. Wenn der hidesBottomBarWhenPushed-Wert Ihres obersten View-Controllers jedoch false ist, wird keine Registerkartenleiste für andere Controller im Navigationsstapel angezeigt.
Vor dem Drücken von set controller.hidesBottomBarWhenPushed = true
let objCreateEventVC = CreateEventVC()
objCreateEventVC.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(objCreateEventVC, animated: false)
Die isHidden-Eigenschaft von tabBar muss nicht festgelegt werden.
Gehen Sie einfach zu ViewController (in StoryBoard) -> Attributinspektor -> Aktivieren Sie im Abschnitt "View Controller" das Kontrollkästchen "Bottom Bar on Push ausblenden". Das funktioniert wie ein Zauber.
Wenn Sie den 'isHidden'-Weg gehen, müssen Sie viel Handling machen, dh um ihn beim Zurückgehen wieder erscheinen zu lassen und um den unteren leeren Bereich nach dem Ausblenden der TabBar zu entfernen.
Hide Bottom Bar on Pushhat eine unangenehme Animation, imo.
Swift 3.
self.tabBarController?.tabBar.isHidden = true
Sie können es auch als Erweiterung festlegen (verwenden Sie die Antwort von Dharmesh Kheni).
extension UITabBar {
func tabsVisiblty(_ isVisiblty: Bool = true){
if isVisiblty {
self.isHidden = false
self.layer.zPosition = 0
} else {
self.isHidden = true
self.layer.zPosition = -1
}
}
Dies ist der programmgesteuerte Weg für Swift 4.0, 4.1, 4.2, 5.0 und höher >:
tabBarController?.hidesBottomBarWhenPushed = true
oder
hidesBottomBarWhenPushed = true
Um die Navigationsleiste und die Registerkartenleiste auszublenden, verwende ich die nächste Funktion:
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
}
}
Wenn sich die Bildschirmausrichtung geändert hat, ändert sich auch die Höhe der Registerkartenleiste. Daher verwende ich die nächste Funktion, um den Vollbildmodus zu verlassen und die Größe zu ändern:
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
}
}
Ich hoffe es ist nützlich für dich.
vc.hidesBottomBarWhenPushed = truesollte die Arbeit machen. Die Registerleiste NICHT manuell ein- und ausblenden.