Texto de la barra de navegación de iOS 7 y color de flecha

Resuelto 1110 asked hace 54 años • 11 respuestas

Quiero establecer que el fondo de la barra de navegación sea negro y que todos los colores de su interior sean blancos .

Entonces, usé este código:

[[UINavigationBar appearance] setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:
      [UIColor whiteColor],
      NSForegroundColorAttributeName,
      [UIColor whiteColor],
      NSForegroundColorAttributeName,
      [NSValue valueWithUIOffset:UIOffsetMake(0, -1)],
      NSForegroundColorAttributeName,
      [UIFont fontWithName:@"Arial-Bold" size:0.0],
      NSFontAttributeName,
      nil]];

Pero el color del texto del botón Atrás , la flecha y el botón de barra todavía tienen el color azul predeterminado .
¿Cómo cambiar esos colores como en la imagen de abajo?

barra de navegación

1110 avatar Jan 01 '70 08:01 1110
Aceptado

El comportamiento de algunas de las propiedades de UINavigationBarha cambiado desde iOS 7 . Puedes verlo en la imagen que se muestra a continuación:

ingrese la descripción de la imagen aquí


Dos hermosos enlaces que me gustaría compartir contigo. Para más detalles puedes pasar por estos enlaces:

  1. Guía de transición de la interfaz de usuario de iOS 7 .
  2. Cómo actualizar su aplicación para iOS 7 .

La documentación de Apple para barTintColor dice:

Este color se vuelve translúcido de forma predeterminada a menos que establezca la propiedad translúcida en NO.

Código de muestra :

self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
[self.navigationController.navigationBar 
 setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
self.navigationController.navigationBar.translucent = NO;
Bhavin avatar Sep 26 '2013 13:09 Bhavin

ingrese la descripción de la imagen aquí

Esto me llevó alrededor de medio día descubrirlo, pero esto es lo que funcionó para mí. Dentro del rootViewController que inicializa el NavigationController, puse este código dentro de mi método viewDidAppear:

//set bar color
[self.navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:85.0/255.0 green:143.0/255.0 blue:220.0/255.0 alpha:1.0]];
//optional, i don't want my bar to be translucent
[self.navigationController.navigationBar setTranslucent:NO];
//set title and title color
[self.navigationItem setTitle:@"Title"];
[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor]];
//set back button color
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], UITextAttributeTextColor,nil] forState:UIControlStateNormal];
//set back button arrow color
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];

Mi publicación completa sobre esto aquí.

John Riselvato avatar Oct 03 '2013 13:10 John Riselvato