2012-02-29 26 views
42

que tienen una aplicación con una barra de navegación que empuja a un controlador de vista de la pantalla de inicio de sesión y luego empuja a un menú principal. ¿Hay alguna forma de que pueda quitar el botón Atrás del menú principal para que el usuario no pueda volver a la pantalla de inicio de sesión?iOS cómo quitar el botón Atrás?

Gracias!

EDIT: El uso de Xcode 4.3 y haciendo todo el trabajo de la pierna mediante programación.

Respuesta

104

Usted puede hacer:

[self.navigationItem setHidesBackButton:YES]; 

En su segundo controlador de vista (el que se desea ocultar el botón).

+0

Awesome! Gracias – jbearden

+3

Puede que desee volver a pensar utilizando la pila de navegación y en su lugar presentar un VC modal, consulte a continuación. –

+0

Para referencia futura, si no funciona, simplemente ponga ese código en viewDidAppear: y comenzará a funcionar. –

6

Peters respuesta es correcta, aunque creo que la mejor pregunta es ¿por qué? En un esquema como la suya en la que está deseando iniciar sesión un usuario, en lugar de utilizar un VC Empujado, presentar un modal VC y utilizar un método delegado para recuperar la información del usuario que se obtuvo en el proceso de inicio de sesión. Puedo publicar un ejemplo de código completo si lo necesita, pero parece que tiene los detalles resueltos con su proceso de inicio de sesión. Sólo tiene que utilizar:

presentModalViewController 

en lugar de:

pushViewController 

esta manera, usted no tiene que preocuparse por la pila de navegación y hacer algo que realmente no está en línea con las directrices de la interfaz de usuario .

+0

Buen punto. ¡Agradezco tus comentarios! – jbearden

1

Prueba esto:

[self.navigationItem setHidesBackButton:YES]; 

O

[self.navigationItem setHidesBackButton:YES animated:YES]; 
2

en Swift

self.navigationItem.hidesBackButton = true 
0

juzgado en Xcode7.3.1 , rápido

self.navigationItem.setHidesBackButton(true, animated: true) 

Sólo ocultar la flecha hacia atrás y discapacitados la acción de regreso, pero todavía se puede ver el nombre del controlador de vista previa.

Para aquellos que quieren ocultar también el nombre del controlador de vista previa, tratar Yoga's answer funciona para mí. En swift

self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: UIView()) 
Cuestiones relacionadas