2011-11-07 25 views
7

Quiero ocultar la barra de herramientas inferior en una determinada pantalla en mi aplicación, y IB parece tener una opción para que la vista previa parezca funcionar correctamente, pero cuando construyo y pruebo la aplicación, la parte inferior la barra de herramientas todavía está allí.Ocultar controlador de navegación de barra inferior

Sé que puedo usar [self.navigationController setToolbarHidden:YES]; pero mi pregunta no es cómo hacerlo usando código, sino cómo hacerlo funcionar a través de Interface Builder.

enter image description here

Aquí es una captura de pantalla de lo que estoy hablando. Ver a la derecha cómo he seleccionado Barra inferior: ninguna - esto elimina la barra inferior como se muestra a la izquierda. Si lo configuro en inferido (en lugar de Ninguno) la barra inferior se muestra en la vista previa de IB.

¿Cómo hago para que esto funcione correctamente?

Respuesta

5

No puede establecer esto en el Generador de interfaces. Si observa el encabezado de la sección en IB donde puede activar/desactivar estas barras diferentes, dice "simulado". Estas opciones solo están ahí para ayudarlo a visualizar su UI en IB al diseñarla. No tienen absolutamente ninguna influencia en la aplicación en ejecución.

+0

'doh! Entonces, ¿debería simplemente usar el código en los métodos 'viewWillAppear' y' viewWillDisapper' para ocultarlo y traerlo de regreso respectivamente? – Baub

+2

Sí, eso es lo que debes hacer. –

+1

También tenga en cuenta que hay una opción llamada "Oculta la barra inferior al pulsar" que hará lo que está pidiendo en caso de que ViewController en cuestión se inserte en una pila de navegación. – Till

3

Habilite "Oculta la barra inferior al pulsar" dentro del IB en caso de que su ViewController se inserte en una pila UINavigationController.

Esto debería hacer exactamente lo que está pidiendo. Como beneficio adicional, la ocultación y la exhibición estarán muy animadas por el sistema.

+3

Veo un problema con esto: cuando me vuelvo a presionar para volver a ese controlador de vista inicial que tiene la barra de herramientas, no tiene la barra de herramientas cuando vuelvo. – Baub

+0

@James Esto se puede resolver configurando la opción _Shows Toolbar_ de 'UINavigationController'. –

4

No pude hacerlo en el guión gráfico cuando solo desea ocultar la barra de herramientas en un controlador de vista. Si desea ocultarlo para todos, debe dirigirse al controlador de navegación y establecer los valores en el guión gráfico. Pero esto hace que todos los controladores de vista oculten las barras de herramientas. Si desea ocultarlo para un controlador de vista, use esto en ese controlador de vista:

-(void) viewWillAppear:(BOOL)animated 
{ 
    [self.navigationController.toolbar setHidden: YES]; 
} 

-(void) viewWillDisappear:(BOOL)animated 
{ 
    [self.navigationController.toolbar setHidden: NO]; 
} 
Cuestiones relacionadas