El comportamiento de tintColor
for bars ha cambiado en iOS 7.0. Ya no afecta el fondo de la barra.
De la documentación:
Referencia de clase barTintColor
El color de tinte para aplicar al fondo de la barra de navegación.
@property(nonatomic, retain) UIColor *barTintColor
Discusión
Este color se hace translúcido por defecto a menos que establezca la propiedad translúcida en NO
.
Disponibilidad
Disponible en iOS 7.0 y posterior.
Declarado en
UINavigationBar.h
Código
NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) {
// iOS 7.0 or later
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
self.navigationController.navigationBar.translucent = NO;
}else {
// iOS 6.1 or earlier
self.navigationController.navigationBar.tintColor = [UIColor redColor];
}
También podemos usar esto para verificar la versión de iOS como se menciona en la Guía de transición de la interfaz de usuario de iOS 7
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
// iOS 6.1 or earlier
self.navigationController.navigationBar.tintColor = [UIColor redColor];
} else {
// iOS 7.0 or later
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
self.navigationController.navigationBar.translucent = NO;
}
EDITAR
usando xib