Estoy tratando de descubrir cómo ocultar la barra de pestañas en mi aplicación rápida de iOS. No me importan las animaciones extravagantes ni nada. Solo algo que puedo poner en la función ViewDidLoad ().
Respuestas:
Simplemente puede usar esto en su ViewDidLoad()
método.
self.tabBarController?.tabBar.hidden = true
Para Swift 3.0, 4.0, 5.0 :
self.tabBarController?.tabBar.isHidden = true
O puede cambiar la posición z de la barra de pestañas de esta manera:
self.tabBarController?.tabBar.layer.zPosition = -1
y si quieres volver a mostrarlo entonces:
self.tabBarController?.tabBar.layer.zPosition = 0
La respuesta aceptada funciona, pero la transición a otra vista tiene una animación entrecortada (la animación de la barra de pestañas)
También quería agregar, aunque la solución de Kalpesh funcionó perfectamente para mí, descubrí que cada controlador de vista tiene un atributo para hidesBottomBarWhenPushed (vea el guión gráfico). Si desea ocultar la barra de pestañas, debe marcar eso. Y funcionaría muy bien.
Actualización: no estoy seguro de si esto es algo conocido, pero esto es lo que dice la página de documentación de Apple:
Creo que esto significa que debe establecer el valor básico de hidesBottomBarWhenPushed en el controlador de vista superior (el primero en la pila de navegación). Una vez que lo haya establecido en verdadero, puede cambiar a falso o verdadero para los otros controladores de vista en el apilar. Pero, si el valor hidesBottomBarWhenPushed de su controlador de vista superior es falso, no mostrará una barra de pestañas para otros controladores en la pila de navegación.
Antes de presionar, configure controller.hidesBottomBarWhenPushed = true
let objCreateEventVC = CreateEventVC()
objCreateEventVC.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(objCreateEventVC, animated: false)
setViewControllers
No es necesario establecer la propiedad isHidden de tabBar.
Simplemente, vaya a ViewController (en StoryBoard) -> Inspector de atributos -> En la sección 'Ver controlador' seleccione la casilla de verificación 'Ocultar barra inferior al presionar'. Esto funciona a las mil maravillas.
Si sigue el camino de 'isHidden', necesita hacer mucho manejo, es decir, hacer que vuelva a aparecer cuando regrese y también eliminar el espacio vacío inferior después de ocultar tabBar.
Hide Bottom Bar on Push
tiene una animación desagradable, en mi opinión.
Rápido 3.
self.tabBarController?.tabBar.isHidden = true
También puede configurarlo en extensión (use la respuesta 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
}
}
Esta es la forma programática para Swift 4.0, 4.1, 4.2, 5.0 y posteriores >:
tabBarController?.hidesBottomBarWhenPushed = true
o
hidesBottomBarWhenPushed = true
Para ocultar la barra de navegación y la barra de pestañas, uso la siguiente función:
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
}
}
Cuando la orientación de la pantalla ha cambiado, la altura de la barra de pestañas también cambia, entonces uso la siguiente función para salir de la pantalla completa y cambiar el tamaño de la altura:
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
}
}
Espero que te sea de utilidad.
vc.hidesBottomBarWhenPushed = true
debería hacer el trabajo. NO muestre ni oculte manualmente la barra de pestañas.