Search code examples
objective-cuinavigationcontrollerios5uitabbariphone-4

iOS5 UITabBar change the color of the ...More navigation controller


I'm trying to make my app feel more customized with a shaded navigation bar. For all controllers that I create, I can change the color of the navbar using:

self.navigationController.navigationBar.tintColor = [UIColor blackColor];

So all of my controllers use black navigation bars. However, when such controller is viewed in the "...More" tabbar section, the tint reverts to blue.

How do I change the ...More navigation controller tint?

As a side note, how do I would I go about globally define the style that my app is using?

edit: To save some work, I defined a custom MyColors class, and put these methods in it:

+(UIColor*)navBarColor;
+(UIColor*)toolBarColor;
+(UIColor*)lightFontColor;
+(UIColor*)darkFontColor;
+(UIColor*)transparentColor;

This will help me change the colors of a UITabBar in the future without having to go hunting through each UIViewController and changing the color by hand!

Thank you!


Solution

  • If you want to set a global color then use the new appearance proxy.

    for example,

    [[UINavigationBar appearance] setTintColor:myColor];
    

    Any UIKit object that adopts the UIAppearence protocol can be set globally like this.