Cómo establecer el título de una Barra de Navegación mediante programación?

Tengo una Barra de Navegación en la vista, y quiero cambiar su Navegación título del Elemento mediante programación.

Cómo se hace esto?

  • En un controlador de vista?
InformationsquelleAutor Doug Null | 2011-05-27

11 Kommentare

  1. 188

    En su UIViewController

    self.navigationItem.title = @"The title";
    • Sí, yo elegiría este, ya que sólo las actualizaciones de la navigationItem del título y no la toolbarItem del título.
  2. 25

    Swift 3 Versión:

    Si utiliza una barra de navegación sin controlador de navegación, entonces usted puede intentar esto:

    navigationBar.topItem?.title = "Your Title"

    Esperanza para ayudar.

  3. 11

    En viewDidLoad

      self.title = @"Title";
    • Mis dos centavos 🙂 Esto funciona, aunque si la vewcontroller es parte de un toolbarcontroller. A continuación, el toolbaritem del título se actualizará.
  4. 7

    De La Documentación De Apple:

    La forma más común de utilizar una barra de navegación con la navegación
    el controlador. También puede utilizar una barra de navegación como un objeto independiente
    en tu aplicación.

    Así que Si usted tiene un UINavigationController, todo lo que tienes que hacer para establecer el título de la barra de navegación (como se explicó en todas las respuestas anteriores)

    self.navigationItem.title = @"title";

    Pero Si usted tiene un reproductor de la barra de navegación que se crea mediante programación dentro de un objeto de UIViewController, tienes Que configurar la apariencia inicial de la barra de navegación mediante la creación de la correspondiente UINavigationItem los objetos y añadirlos a la barra de navegación de objetos de la pila es decir,

    1. Crear una instancia de la barra de navegación (UINavigationBar)
    2. Crear una instancia de la barra de navegación elemento (UINavigationItem) que gestiona los botones y las vistas que se muestran en una UINavigationBar objeto. Tenga en cuenta que se establece el título en este paso.
    3. (Paso opcional) Agregar los botones derecho/izquierdo (instancias de UIBarButtonItem) a la barra de navegación elemento.

    Ejemplo de Código Objective-C para el mencionado pasos:

    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 Swift versión de la independiente de la barra de navegación, echa un vistazo esta respuesta.

  5. 6

    Escribir el siguiente código en viewDidLoad o puede ser mejor sería bajo initWithNibName:

      self.navigationItem.title = @"title";

    Gracias.

  6. 1

    Este código no me funciona

    self.navigationItem.title = @"Title here";

    Pero esto funcionó.

    self.title = "Title Name"
  7. 1

    En su UIViewController del viewDidLoad

    self.navigationItem.title = "The title";//In swift 4

    va a hacer el truco

    usted también puede poner la instrucción anterior en la aplicación delegado para replicar a nivel mundial.

  8. 0

    Utilizar 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";
  9. 0

    nota muy importante : asegúrese de realizar los cambios que se mencionó anteriormente en la vista principal del Controlador de viewDidLoad método, o los padres de la barra de navegación en el guión gráfico

  10. 0

    A veces es posible obtener un caso en el que la actualización del título y no está causando ningún efecto, esto puede ser cuando usted tiene una vista personalizada en la topItem por lo tanto, es posible que desee actualizar de esta manera: (self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea