iOS 更改整个应用程序的 NavigationBar 外观

iOS Change NavigationBar appearance throughout entire app

我的情节提要中有多个 UINavigationController。由于我使用的是 tabbarcontroller,每个选项卡项在 ViewController 之前都嵌入了自己的 UINavigationController。

我想同时为所有这些设置样式。我尝试过的工作将转到 ViewControllers ViewWillAppear 方法并添加以下行:

UINavigationBar *nav = self.navigationController.navigationBar;
nav.barStyle = UIBarStyleBlack;
nav.tintColor = [UIColor blackColor];
nav.translucent = NO;

但是我必须为每个选项卡项和每个 ViewController 执行此操作。

此外,在 AppDelegate 中执行以下操作无效:

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

具体来说,我很好奇为什么使用外观代理不起作用。我是相当新的,所以如果您提供涉及自定义 UINavigationController 或设置委托的解决方案,请详细说明。谢谢!

在您的代码中也添加这一行:

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