2012-06-02 20 views
6

sigo leyendo para cambiar el color predeterminado en un navigationbar i sólo tiene que actualizar el primer método en el AppDelegate a estenavigationbar (color de fondo)

self.window.rootViewController.navigationController.navigationBar.tintColor = [UIColor whiteColor]; 

pero no parece funcionar, así que traté de configurarlo en el método viewDidLoad de la primera vista también:

self.parentViewController.navigationController.navigationBar.tintColor = [UIColor whiteColor]; 

Esto tampoco funcionó. ¿Cómo puedo cambiar esto?

Respuesta

0

Trate self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
UIViewController clase tiene una propiedad navigationController, que devuelve el mando de navegación integrado en su sin importar la profundidad, de lo contrario devuelve nil.

6

No utilice self.parentViewController, pero self:

self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; 
1

cuando el iPhone 5 es que tenemos que especificar tanto el tipo de dispositivo. A fin de utilizar este

if([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) { 
    //iOS 5 new UINavigationBar custom background 
    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbg_ForiPhone5_Imagename.png"] forBarMetrics: UIBarMetricsDefault]; 
} else { 
    [self.navigationController.navigationBar insertSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"navbg_ForOtherIphone_Imagename.png"]] atIndex:0]; 
} 
+0

Prefiero usar el UIImage sobre el color del tinte. Gracias. – Flea

1

En iOS7 puede intentar esto:

[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]]; 

puede seguir estos pasos:

he creado una nueva UINavigationController por ejemplo UIDemoNavController lo que resulta en:

- (void)viewDidLoad{ 
    [[UINavigationBar appearance] setBarTintColor:[UIColor redColor]]; 
    [super viewDidLoad]; 
} 

Esta es la clase de demostración completa:

#import "UIDemoNavController.h" 

@interface UIDemoNavController() 

@end 

@implementation UIDemoNavController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) {} 
    return self; 
} 

- (void)viewDidLoad{ 
    [[UINavigationBar appearance] setBarTintColor:[UIColor redColor]]; 
    [super viewDidLoad]; 
} 

- (void)didReceiveMemoryWarning{ 
    [super didReceiveMemoryWarning]; 
} 

@end