custom color change bar ios uinavigationbar

ios - color - Establece el título de la barra de navegación creada en Interface Builder



navigation bar ios swift 4 (8)

(Utilizando XCode 4.5.2) Encontré un método que funciona directamente en Interface Builder, sin establecer el código.

Con el objeto ViewController seleccionado en (IB), en el Inspector de identidad hay una sección con la etiqueta " Atributos de tiempo de ejecución definidos por el usuario ". Agregué el keyPath "title" de tipo String y lo configuré al valor que quería.

Probado y esto funciona cuando se empuja en una pila de Controladores de Nav y cuando se abre de manera modal (por supuesto, con un Controlador de Nave Modal).

Tengo un controlador de vista modal cuya vista proviene de un XIB. Quiero que tenga la misma apariencia que el resto de mi aplicación basada en la navegación, pero no es una vista que se ha insertado en la pila de navegación, se presenta de manera modal. Arrastré una barra de UINavigation y la convertí en una salida, pero no tiene una propiedad de título para establecer. Tengo dos campos que pueden mostrar esta vista modal, y quiero que el título se establezca de manera diferente según cuál cree la vista modal.


Aquí está la manera más simple:

[[[self.navigationController navigationBar] topItem] setTitle:@"The Title"];


Archivo viewcontroller.h en crear iboutlet del elemento de navegación

@property (weak, nonatomic) IBOutlet UINavigationItem *navigationBarTitle;

- Llamado así "navigationBarTitle"

en el archivo viewcontroller.m agregue el código en super viewDidLoad

self.navigationBarTitle.title = @"Favorites";

conecta el storybord en el elemento de la barra de navegación con navigationBarTitle.


Puedes usar la barra de navegación existente con el siguiente código

self.navigationController?.navigationBar.topItem?.title = "Calender"


Simplemente coloque su UIViewController en la nueva pila de controladores de UINavigationController y presente ese controlador de navegación de manera modal.


También encontró esta forma más fácil si ya ha definido una barra de UINavigation en su IB. Asumiendo que self.navigationBar es tu IBOutlet:

self.navigationBar.topItem.title = title;


en mi archivo .h

  • Arrastre el elemento secundario del elemento de navegación desde el guión gráfico al archivo .h

  • Nombrado como "navigationBarTitle"

en mi archivo .m

  • Se agregó self.navigationBarTitle.title = @ "Some Title";

UINavigationBar gestiona una pila de UINavigationItem muy parecido a un administrador de UINavigationController una pila de UIViewController . Para establecer lo que está visible directamente, debe usar pushNavigationItem:animated: o setItems:animated: usando el elemento de navegación del controlador de vista que desea que refleje la barra.

p.ej:

self.navigationItem.title = @"A custom title"; [self.navigationBar pushNavigationItem:self.navigationItem animated:NO];

El código anterior donde tiene una barra de navegación de propiedad que hace referencia a la barra de navegación independiente.

Si no desea administrarlo usted mismo, puede hacer lo que mplappert sugirió y anidar su controlador de vista (sin una UINavigationBar independiente) en un controlador de controlador de navegación UINavigationController y presentar el controlador de navegación de manera modal en lugar del controlador de vista.