Estoy tratando de personalizar el navigationBar 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];

El navigationBar de la translucencia se apaga y es oscuro, pero el título también queda a oscuras. También he intentado crear una etiqueta personalizada y establecido como el título de la vista con no mucha suerte.

¿Cómo puede el color del título de la cambiarse?

  • Lo consiguió – [navigationController.navigationBar setBarStyle:UIBarStyleBlack];
  • Para el registro, el diccionario que está pasando a setTitleTextAttributes tiene la clave/valor al revés. Debe ser: [navigationController.navigationBar setTitleTextAttributes:@{UITextAttributeTextColor : [UIColor whiteColor]}];
InformationsquelleAutor Live2Enjoy7 | 2013-10-15

8 Comentarios

  1. 65

    La aparición de la api sigue evolucionando, y UITextAttributeTextColor es ahora reemplazado con NSForegroundColorAttributeName.

    [navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];

    Voy a añadir dos cosas:

    La clave es lo primero, entonces el objeto.

    Si quieres cambiar globalmente su nav del controlador de atributos de título, utilizar la apariencia de la api:

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

    Yo pondría que la apariencia de la llamada a la api en delegado de la aplicación del método didFinishLaunchingWithOptions.

    ACTUALIZACIÓN: así se Podría publicar el Swift equivalentes.

    Para actualizar el navigationBar para un individuo de controlador de vista, uno puede usar:

    self.navigationController.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]

    Para cambiar la barra de navegación de la aparición a lo largo de toda una aplicación, se puede utilizar:

    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]
    • Sí, UINavigationBar – no UINavigationController. Gracias por la corrección, lari.
  2. 11

    No funciona para mí.
    El uso de UINavigation como un modal de controlador de vista.

    Aparentemente título de color se debe establecer uiapplication nivel

    Edición:

    Mejor manera es cambiar la navegación título en cada una de VC contexto:

    [self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName,nil]];
  3. 4

    En swift vas a hacer lo siguiente:

    self.navigationController.navigationBar.titleTextAttributes = [
        NSForegroundColorAttributeName : UIColor.redColor(),
        NSFontAttributeName : UIFont.systemFontOfSize(20)
    ]
  4. 4

    Swift + UIAppearance versión:

        UINavigationBar.appearance().barTintColor = .blackColor()
        UINavigationBar.appearance().barStyle = .Black
  5. 3

    El problema en la OP del código es esta línea:

    [navigationController.navigationBar setTitleTextAttributes:@{[UIColor whiteColor]:UITextAttributeTextColor}];

    El color del texto y el nombre del atributo valor se mezclan. Debe ser

    [navigationController.navigationBar setTitleTextAttributes:@{UITextAttributeTextColor:[UIColor whiteColor]}];
  6. 0

    realidad parece un error. Trate de

    myViewcontroller.title = @"";
    navigationController.navigationBar.barStyle = UIBarStyleBlack;
    myViewcontroller.title = @"TITLE";

    obras.

  7. 0

    En Swift 4

    NSForegroundColorAttributeName se cambió el nombre a NSAttributedString.Clave.foregroundColor

    Así que Si Usted está buscando para cambiar el navigationItem color del título de:

    let navBarAppearance = self.navigationController!.navigationBar    
    navBarAppearance.titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white]


    He utilizado UIColor.blanco, sólo tiene que insertar cualquier UIColor desea que el título sea.

Dejar respuesta

Please enter your comment!
Please enter your name here