Tengo una barra de navegación en una vista y quiero cambiar el título del elemento de navegación mediante programación.
¿Cómo se hace esto?
Respuestas:
En viewDidLoad
self.title = @"Title";
De la documentación de Apple :
La forma más común de usar una barra de navegación es con un controlador de navegación. También puede utilizar una barra de navegación como un objeto independiente en su aplicación.
Entonces, si tiene un UINavigationController, todo lo que tiene que hacer para establecer el título de la barra de navegación (como se explica en todas las respuestas anteriores)
self.navigationItem.title = @"title";
Pero si tiene una barra de navegación independiente que se crea mediante programación dentro de un objeto de UIViewController, debe establecer la apariencia inicial de la barra de navegación creando los objetos UINavigationItem apropiados y agregándolos a la pila de objetos de la barra de navegación, es decir
Muestra de código Objective-C para los pasos mencionados:
UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];
/* Create navigation item object & set the title of navigation bar. */
UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:self.shoppingItem.name];
/* Create left button item. */
UIBarButtonItem* cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onTapCancel:)];
navItem.leftBarButtonItem = cancelBtn;
/* Create left button item. */
UIBarButtonItem* doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(onTapDone:)];
navItem.rightBarButtonItem = doneBtn;
/* Assign the navigation item to the navigation bar.*/
[navbar setItems:@[navItem]];
/* add navigation bar to the root view.*/
[self.view addSubview:navbar];
Para la versión Swift de la barra de navegación independiente, consulte esta respuesta .
Escriba el siguiente código en viewDidLoad
o puede ser mejor sería debajoinitWithNibName:
self.navigationItem.title = @"title";
Gracias.
También puedes usar 👇🏻
[self.navigationController.navigationBar.topItem setTitle:@"Titlet"];
Úselo en el método ViewDidLoad
Formato :
@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.
Ejemplo:
self.navigationItem.title = @"Title here";
nota muy importante: asegúrese de realizar los cambios mencionados anteriormente en la vista principal del método viewDidLoad del controlador o en la barra de navegación de los padres en el guión gráfico
A veces, es posible que tenga un caso en el que está actualizando el título y no está causando ningún efecto, esto puede ser cuando tiene una vista personalizada, por topItem
lo que es posible que desee actualizarlo de esta manera:(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"