2012-06-02 50 views
6

ich lesen Sie die Standardfarbe auf einem navigationbar zu ändern, ich muss nur die erste Methode in der AppDelegate Aktualisierung dieserändern navigationbar Farbe (Hintergrundfarbe)

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

, aber es scheint nicht zu funktionieren, also habe ich versucht, es in der viewDidLoad-Methode der ersten Ansicht auch zu setzen:

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

Das hat auch nicht funktioniert. Wie kann ich das ändern?

Antwort

0

Versuchen self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
UIViewController Klasse hat eine Eigenschaft navigationController, die die Navigation-Controller seine in ganz gleich, wie tief eingebettet zurückkehrt, sonst ist es nil zurückgibt.

6

Verwenden self.parentViewController nicht, aber self:

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

Wenn iphone 5 kommen wir beide Gerätetyp festgelegt haben. So verwenden Sie diese

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

Ich bevorzuge die Verwendung der UIImage über die Tönungsfarbe. Vielen Dank. – Flea

1

In IOS7 können Sie versuchen, diese:

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

Sie diese Schritte folgen:

Ich habe eine neue UINavigationController zum Beispiel UIDemoNavController ergibt:

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

Dies ist die vollständige Demo-Klasse:

#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 
Verwandte Themen