tutorial iphone cocoa-touch

iphone - tutorial - Cómo cambiar el texto en un botón Atrás



ios (19)

¡Esto funcionó para mí si no quieres tener un título!

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];

Por defecto, el botón Atrás utiliza como texto un título de un controlador de visualización. ¿Puedo cambiar el texto en el botón Atrás sin cambiar el título de un controlador de vista? Necesito esto porque tengo un controlador de vista cuyo título es demasiado largo para mostrar y en este caso me gustaría mostrar solo "Atrás" como un título para el botón Atrás.

Intenté lo siguiente que no funcionó:

self.navigationItem.leftBarButtonItem.title = @"Back";

Gracias.


// Puedes lograr esto estableciendo el título en el controlador de vista anterior como se muestra a continuación

override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) //Set Title for this view self.navigationItem.title = "My Title" } override func viewWillDisappear(animated: Bool) { super.viewWillAppear(animated) //Set Title for back button in next view self.navigationItem.title = "Back" }


El enfoque de Marc W funcionó muy bien una vez que descubrí a qué controlador aplicarlo: el que está siendo re-titulado, no el que está en la parte superior. Entonces, si esta es la pila de navegación:

(bottom) ControllerA -> ControllerB (top)

... y desea dar un título más corto para ControllerA en el botón Atrás que se muestra cuando ControllerB está en la parte superior , usted aplica el cambio de propiedad a ControllerA .

Por lo tanto, es más en el contexto de self.title , no como los otros setters de botones de izquierda / derecha.


En su controlador de vista principal, configure el botón Atrás cuando la vista se cargue:

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"title" style:UIBarButtonItemStylePlain target:nil action:nil]; }

Tenga en cuenta que no es necesario incluir la autorelease al final con la última versión de iOS.

¡Espero que esto ayude!


Esto funcionó para mí:

self.navigationController.navigationBar.topItem.title = "Back"


Esto funciona mejor para mí. Tratar :

self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];


Finalmente supe por qué estas respuestas no funcionaron para mí al principio. Establecí el título en el guión gráfico. Cuando configuro el título en el código. ¡funciona!

self.navigationItem.title = @"Main Menu"; UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil]; [[self navigationItem] setBackBarButtonItem:backButton];


Gracias Marco ... eso me ayudó ...

Aquí esta lo que hice.

Si está usando tableView para navegar a diferentes vistas ... ponga el código:

self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];

En su método didSelectRowAtIndexPath ... del primer Controlador ... Controlador A.

Cuando navegue hacia el Controlador B, el botón tendrá el título "Atrás".


Mi solución fue establecer el título cuando el controlador de vista se empuja a la pila de navegación y restablecerlo mediante el uso de un método delegado antes de que se cierre vc.

Así que puse el cambio de título en el controlador de vista de llamadas cuando presiono el otro controlador de vista como:

self.pushedVC = [self.storyboard instantiateViewControllerWithIdentifier:@"pushedVCIdentifier"]; self.pushedVC.delegate = self; [self.navigationController pushViewController:self.pushedVC animated:YES]; self.title = @"Back";

y en la función delegar devolución de llamada (que invoco en viewWillDissapear):

-(void)pushedVCWillClose:(PushedVC *)sender { self.title = @"Previous Title"; }


Para cambiar el título del botón Atrás, consulte el siguiente código

InformationVC *infoController=[[InformationVC alloc]init];[self.navigationController infoController animated:YES]; //Below code changed back button title on InformationVC page. UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Information" style: UIBarButtonItemStylePlain target: nil action: nil]; self.navigationItem.backBarButtonItem = backBarButton;`enter code here`


Puedes hacerlo en el guión gráfico. Busque el controlador de vista al que desea volver (el que tiene el título largo), seleccione su Elemento de navegación y abra el Inspector de atributos (Alt + Cmd + 4), inserte el título del Botón de retroceso personalizado.


Si desea no solo cambiar el texto del botón Atrás y conservar la forma original de la flecha izquierda, sino también hacer algo cuando el usuario haga clic en el botón Atrás, le recomiendo que eche un vistazo a mi " CustomNavigationController ".


Si está usando el guión gráfico:

  1. Abrir StoryBoard
  2. En la ventana del esquema del documento, encuentre ViewController al cual desea regresar
  3. Haga clic en el elemento de navegación de ViewController
  4. En Atributos, el explorador cambia el valor del Botón Atrás a su mosaico personalizado

Eso es, disfruta ...


Tratar

self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];

Encontré eso mirando los documentos backBarButtonItem en los documentos de Apple para UINavigationItem .


Y en MonoTouch, los siguientes trabajos (en ViewDidLoad del controlador principal):

NavigationItem.BackBarButtonItem = new UIBarButtonItem( "Back", UIBarButtonItemStyle.Plain, null);


[self.navigationController.navigationBar.backItem setTitle:@"back"];

Esto funciona para mi. Puedes reemplazar "volver" por otra cosa.


El botón Atrás extrae su texto del título del controlador de vista principal.

En el controlador de vista principal (el controlador de vista que aparece cuando toca el botón Atrás), establezca su propio título como el texto deseado en el botón Atrás.

Por ejemplo, supongamos que tenemos una clase RootViewController . Cuando hacemos clic en una celda en su vista de tabla, pulsamos una instancia de SecondViewController . Queremos que el botón Atrás de la instancia de SecondViewController lea "Inicio".

en el método viewDidLoad de RootViewController.m :

self.title = @"Home";

en el método viewDidLoad de SecondViewController.m :

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.backBarButtonItem = backButton; [backButton release];

Si desea que su botón Atrás lea, "Atrás", establezca el título del controlador de vista principal en @"Back" ;


[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil]];

Esto funcionó para mí.


self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];