objective c - item - Personalizando la barra de navegación en iOS7-el color del título no funciona
navigationbar swift (7)
Estoy intentando personalizar la barra de navegación de un controlador de navegación en iOS7 y el color del título no está cambiando. Estoy haciendo lo siguiente:
[navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:46.0f/256.0f green:46.0f/256.0f blue:46.0f/256.0f alpha:1]];
[navigationController.navigationBar setTranslucent:NO];
[navigationController.navigationBar setTitleTextAttributes:@{[UIColor whiteColor]:UITextAttributeTextColor}];
[self presentViewController:navigationController animated:YES completion:nil];
La translucidez de la barra de navegación se apaga y está oscura, pero el título también permanece oscuro. También he intentado crear una etiqueta personalizada y establecerla como vista de título sin mucha suerte.
¿Cómo se puede cambiar el color del título?
El problema en el código del OP es esta línea:
[navigationController.navigationBar setTitleTextAttributes:@{[UIColor whiteColor]:UITextAttributeTextColor}];
El nombre del atributo de color de texto y el valor se mezclan. Debería ser
[navigationController.navigationBar setTitleTextAttributes:@{UITextAttributeTextColor:[UIColor whiteColor]}];
En veloz harás lo siguiente:
self.navigationController.navigationBar.titleTextAttributes = [
NSForegroundColorAttributeName : UIColor.redColor(),
NSFontAttributeName : UIFont.systemFontOfSize(20)
]
La apariencia de la API continúa evolucionando, y UITextAttributeTextColor ahora se reemplaza con NSForegroundColorAttributeName.
[navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
Añadiré dos cosas:
La clave viene primero, luego el objeto.
Si desea cambiar globalmente los atributos de título de su controlador de navegación, use la api de apariencia:
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
Puse esa llamada api de apariencia en el método didFinishLaunchingWithOptions del delegado de tu aplicación.
ACTUALIZACIÓN: También podría publicar los equivalentes Swift.
Para actualizar la barra de navegación para un controlador de vista individual, se puede usar:
self.navigationController.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]
Para cambiar la apariencia de la barra de navegación a través de una aplicación completa, se puede usar:
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]
No trabajando para mi Usando UINavigation como un controlador de vista modal.
Al parecer, el color del título debe establecerse en el nivel de aplicación.
Editar:
La mejor manera es cambiar el título de navegación en cada contexto de VC:
[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName,nil]];
Versión Swift + UIAppearance:
UINavigationBar.appearance().barTintColor = .blackColor()
UINavigationBar.appearance().barStyle = .Black
en realidad parece un error. Tratar
myViewcontroller.title = @"";
navigationController.navigationBar.barStyle = UIBarStyleBlack;
myViewcontroller.title = @"TITLE";
trabajos.
[navigationController.navigationBar setBarStyle:UIBarStyleBlack];