item color bar iphone objective-c ios7 uinavigationcontroller tintcolor

iphone - color - navigation item swift



UINavigationBar establece tintcolor probado en iOS7 no funciona? (6)

El siguiente código me funciona:

self.navigationController.navigationBar.barTintColor = [UIColor blackColor];

Tengo una aplicación que tiene UINavigationBar y he establecido el color del tinte en negro así:

self.navigationController.navigationBar.tintColor = [UIColor blackColor];`

Lo probé en IOS 6 y es negro. Sin embargo, aparece como la barra de navegación predeterminada cuando probé la misma aplicación en iOS 7.

Como dice el título, ¿no está funcionando?


Utilicé el siguiente código para cambiar el color del tinte de la barra de navegación en iOS7, agregué esto en el método delegado de aplicación "applicationDidFinishLaunch" y funciona bien para mí:

/* ios 7 Change */ if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x4B678B)]; NSShadow *shadow = [[NSShadow alloc] init]; shadow.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8]; shadow.shadowOffset = CGSizeMake(0, 1); [[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], NSForegroundColorAttributeName, shadow, NSShadowAttributeName, [UIFont fontWithName:@"Helvetica Neue" size:21.0], NSFontAttributeName, nil]]; // self.navigationController.navigationBar.barTintColor = [UIColor blueColor]; //[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent]; [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; }


[UINavigationBar appearance].tintColor = [UIColor redColor]; if ([[UINavigationBar appearance] respondsToSelector:@selector(setBarTintColor:)]) { [UINavigationBar appearance].barTintColor = [UIColor redColor]; }

//O

self.navigationController.navigationBar.tintColor = [UIColor redColor]; if ([self.navigationController.navigationBar respondsToSelector:@selector(setBarTintColor:)]) { self.navigationController.navigationBar.barTintColor = [UIColor redColor]; }


Tenía el mismo problema, pero lo resolvió a través del archivo del guión gráfico.

Prueba lo siguiente.

  1. Abra su archivo .storyboard.
  2. Seleccione la escena con el controlador de navegación
  3. Seleccione el elemento Barra de navegación en la escena Controlador de navegación

  4. Abra la pestaña Utilidades en el lado derecho de XCode

  5. Inspector de atributos abiertos
  6. En el grupo "Barra de navegación", aparecerá la lista desplegable Barra de matiz. Puedes elegir cualquier color para un tinte.

Las respuestas de Fernando y Sanjana tienen la clave, pero solo agregaré algo para hacerlo más claro y más obvio.

La barra de navegación tiene dos propiedades

  • tintColor
  • barTintColor

Es un poco engañoso cuando no piensas en términos de iOS 7.

tintColor cambia el color de los botones de la barra de navegación. Para cambiar el color de fondo, debe establecer la propiedad barTintColor .

self.navigationController.navigationBar.barTintColor = [UIColor whiteColor]; self.navigationController.navigationBar.tintColor = [UIColor greenColor];

Este fragmento de código le dará una barra de navegación blanca con botones verdes.