Spróbuj
[[UINavigationBar appearance] setBarTintColor: [UIColor redColor]];
Albo na iOS 6,
[[UINavigationBar appearance] setTintColor:[UIColor redColor]];
Jeśli masz kontroler nawigacji jako rootViewController, dostać go z:
UINavigationController* nc = (UINavigationController*)[[[UIApplication sharedApplication] delegate] window].rootViewController;
a następnie ustawić kolor:
[nc.navigationBar setBarTintColor:[UIColor redColor]];
A jeśli chcesz zmienić kolor w każdym viewcontroller, wystarczy umieścić kod w każdym viewWillAppear
metody
Jeśli nie chcesz zastąpić viewWillAppear
w każdym kontrolerze viewcontroller, możesz stworzyć super viewcontroller dla twojego projektu. Ale jeśli jest zbyt późno, można również tworzyć niestandardowe UINavigationController
i po prostu zastąpić metody Push/pop, takich jak:
-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
[super pushViewController:viewController animated:animated];
[self.navigationBar setBarTintColor:[UIColor redColor]];
}
Zrób to dla czterech metod:
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
lub przynajmniej do metod, które posługiwać się. A następnie przesuń viewWillAppear
w swoim widoku Kontrolery, które potrzebują innego koloru paska.
Zmiana koloru paska nawigacyjnego w viewWillAppear. –