使用Xcode更改导航栏色调

6

我一直在这个网站和其他地方寻找如何设置导航栏的颜色变化,我看到了一些例子,但并不完全符合我的需求,所以任何帮助都将不胜感激。

在我的应用程序代理中,我有:

@synthesize window;
@synthesize tabBarController;
@synthesize navigationController;
@synthesize navigationController1;
@synthesize navigationController2;
@synthesize viewController;
@synthesize viewController2;
@synthesize viewController3;

#pragma mark -
#pragma mark Application lifecycle 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:              (NSDictionary *)launchOptions {    

    // Override point for customization after application launch.


    // Set the tab bar controller as the window's root view controller and display.
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];


    return YES;
}

当我输入上述代码self.navigationController.navigationBar setTintColor:[UIColor blackColor]时,它只会更改一个导航控制器而不是我需要更改的那个。
我的选项卡栏有7个项目,当我按下“更多…”时,我会得到一个表视图,其中显示不能放在主屏幕上的其他项目,导航栏会自动添加。无论我做什么,都无法更改此导航栏色调,我可以更改那些我有@synthesize但无法更改自动输入的那个。
请问有人知道如何更改自动放置的导航栏吗?
2个回答

17

您可以使用外观代理来完成此操作。如果您像这样设置颜色,它将应用于应用程序中的每个导航栏:

[[UINavigationBar appearance] setTintColor:[UIColor blackColor]];

1
只是想提一下,外观代理仅在iOS 5中可用。 - Randall
就像setTintColor方法本身一样。如果您需要在iSO4上使用此功能,则需要采用不同的方法。以下是一个讨论,链接到一些解决方案:http://stackoverflow.com/questions/9150956/customizeappearance-compatibility-on-others-ios/9151033#9151033 - Nick Lockwood

3

iOS 6及以下版本:

[[UINavigationBar appearance] setTintColor:[UIColor blackColor]];

iOS 7及以上版本:

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

在AppDelegate中的此方法中设置它。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接