O comportamento de tintColor
para barras mudou no iOS 7.0. Não afeta mais o fundo da barra.
A partir da documentação:
Referência da classe barTintColor
A cor da tonalidade a ser aplicada ao fundo da barra de navegação.
@property(nonatomic, retain) UIColor *barTintColor
Discussão
Essa cor é translúcida por padrão, a menos que você defina a propriedade translúcida como NO
.
Disponibilidade
Disponível no iOS 7.0 e posterior.
Declarado em
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];
}
Também podemos usar isso para verificar a versão do iOS como mencionado no iOS 7 UI Transition Guide
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