solid item color bar objective-c swift ios7 uinavigationcontroller uinavigationbar

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];