2011-11-08 20 views
10

Cuando presiono una vista en el controlador de navegación, el título del botón Atrás se establece en el título de la vista anterior. ¿Cómo puedo obtener el botón Atrás para decir "Atrás"?Cómo cambiar el título del botón Atrás de UINavigationBar a "Atrás"

+0

Vale la pena mencionar que las Directrices de interfaz humana iOS especifican que el botón de retroceso "debe ser etiquetado con el título del nivel anterior" con el fin de ayudar a orientar a sus usuarios: https://developer.apple .com/library/ios/documentation/userexperience/conceptual/mobilehig/Bars.html # // apple_ref/doc/uid/TP40006556-CH12-SW3 – cleverbit

Respuesta

30

Escribir este código en tu viewwillappear:

UIBarButtonItem *_backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:nil action:nil]; 
self.navigationItem.backBarButtonItem = _backButton; 
[_backButton release]; 
_backButton = nil; 
+0

Esto no se verá ni actuará como un botón de retroceso. – jrturton

+3

Sí lo hará. La propiedad 'backBarButtonItem' está diseñada específicamente para funcionar así y tomará el título o la vista personalizada del' UIBarButtonItem' que le proporcione y lo convertirá en un botón de estilo retroactivo. –

+1

Solo quería decir, como respuesta a esta pregunta, esta solución definitivamente funcionó para mí. Solo necesitaba agregar el código al viewWillAppear del controlador de vista que está PULSANDO la nueva vista. – cgossain

3

En el controlador de vista previa, haga que lo establece en su título en viewWillAppear, y luego en el código que empuja el nuevo controlador de vista, habría que cambiar su título de 'Espalda.'

Ejemplo:

-(void)showNextScreen{ 
    [self setTitle:@"Back"]; 
    [self.navigationController pushViewController:asdf animated:YES]; 
} 
-(void)viewWillAppear{ 
    [super viewWillAppear]; 
    [self setTitle:@"My Actual Title"]; 
} 
+0

sonaba bien ... pero cuando aparece la nueva pantalla, la pantalla anterior mira hacia atrás en el título, que no es preferible. Buena idea! – nithinreddy

+0

Si está leyendo esta respuesta -> use la respuesta aceptada, ¡es mucho mejor! – Tim

Cuestiones relacionadas