2012-01-02 10 views
18

Mi aplicación es una aplicación con pestañas, y tiene varios controladores en el tabBarController. Un controlador es un navigationController, y su vista de raíz es una vista de tabla. Cuando hago clic en una fila de la vista de tabla, se inserta otra vista. Entonces, la cuestión es que cuando se inserta la vista, ¿cómo puedo ocultar la barra de pestañas en la parte inferior? Además, también quiero agregar otro tabBar en la vista insertada, ¿así que necesito asignar un UITabBar o UITabBarController? O hay otra forma? ¡Gracias!¿Cómo ocultar el tabBar cuando se empuja una vista?

Respuesta

48

uso de este methood en la clase UIViewController donde desea ocultar el tabBarController

-(BOOL)hidesBottomBarWhenPushed 
{ 
    return YES; 
} 

actualización

Como sugiere @Yuchen Zhong en su respuesta, esta opción está disponible en el guión gráfico sí mismo.

enter image description here

+1

Gracias! Usé este método, pero aún así no funcionó. También utilicé "myViewController.tabBarController.hidesBottomBarWhenPushe = YES", y tampoco funcionó. Estoy confundido acerca de esto. ¿Debo cambiar mi estructura o hay mejores formas? ¡Gracias! – wjldxt

+1

Tengo una aplicación TabBar similar con NavigationController como su primer controlador, pero en el navigationController solo he agregado un tableView, y presiono las otras vistas en el método didSelectRow de la vista de tabla. ¿has tomado tableVeiwController en lugar de una simple TableView ...? sería útil si pega algo de su código aquí – Bonnie

+0

¡Gracias! Lo hice eventualmente. Es mi culpa que puse el navigationController en viewController. Cuando uso el navigationController directamente, tuvo éxito. ¡Muchas gracias! – wjldxt

8

Conjunto UIViewController.hidesBottomBarWhenPushed = SÍ cuando se desea ocultar la barra de pestaña.

... 
nextViewController.hidesBottomBarWhenPushed = YES; 
... 
+0

Gracias @ tuoxie007 – Kakashi

+0

Gracias funcionó. – Chandni

5

A veces, el método hidesBottomBarWhenPushed oculta la barra inferior con una animación entrecortado.

En lugar de eso oculto la barra de pestañas en viewDidLoad con

self.tabBarController.tabBar.hidden = YES; 

y restaurar su presencia en viewWillDisappear

self.tabBarController.tabBar.hidden = NO; 
+0

no es bueno, ya que supone en este VC que otro VC en la pila quiere la tabbar - también 'viewDidLoad' es la ubicación incorrecta, ya que podría llamarse incluso cuando este VC aún no aparece, también' self.tabBarController' podría ser 'nil' – fabb

12

Usted puede hacer esto de guión gráfico ahora:

  1. Seleccione la UIViewController en su guión gráfico
  2. Seleccione la casilla de verificación Ocultar barra inferior de empuje

enter image description here

Cuestiones relacionadas