Apple iOS

Solucionamos 4 problemas típicos de la barra de navegación de iOS

Cuando nos ponemos a desarrollar una aplicación para iOS suelen aparecer varios problemas, como podemos encontrar en los foros, pero para en contrar la solución a algunos de ellos hay que rebuscar. Algunos de los cambios que más problemas dan son los relacionados con la barra de navegación superior. Es por ello que hemos intentado destacar las soluciones a esos problemas en este nuevo post. Esperamos sean de vuestro interés.

1. Poner en blanco los elementos superiores de la barra de navegación

Nos referimos no solo a las letras, sino también a los iconos relacionados con la batería o la hora. Hay un tema por defecto que se llama StyleLight que suele poner en blanco las letras, pero si definimos ese tema, vemos que no soluciona nada, hay que cambiar tres elementos en el fichero SupportingFiles/info.plist de tu proyecto, debes añadir:

    1. Status bar style: UIStatusBarStyleLightContent
    2. View controller-based status bar appearance: NO
    3. Status bar is initially hidden: NO

 

2. Cambiar el color de los botones de la barra de navegación

En el controlador de la vista que vayamos a utilizar añadimos en la función init, dentro del if(self):

UINavigationItem *navItem = self.navigationItem; //seleccionamos la navegación
UIBarButtonItem *uibbitem = [[UIBarButtonItem alloc] //seleccionamos el botón
initWithBarButtonSystemItem:UIBarButtonItemCompose target:self
action:@selector(openMenuApp:)]; //Elegimos el tipo de botón y la acción que se va a llevar a cabo con él
[uibbitem setTintColor:[UIColor whiteColor]]; //pintamos el botón del color que queramos
navItem.leftBarButtonItem = uibbitem; //Colocamos el botón en el lado izquierdo o derecho

 

3. Cómo cambiar el color del título del menú:

Este es un cambio sencillo, basta con añadir en el AppDelegate  de nuestro proyecto la siguiente línea:

[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];

 

4. Cambiar el color de fondo de la barra de navegación

También en AppDelegate deberemos añadir la siguiente línea con los valores a rojo, verde y azul en función del color RGB que necesitemos mostrar.

[UINavigationBar appearance] setBarTintColor:[UIColor alloc]initWithRed:0 green:0 blue:0.1 alpha:1]];