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

Posted

技术标签:

【中文标题】iOS 在整个应用程序中更改 NavigationBar 外观【英文标题】:iOS Change NavigationBar appearance throughout entire app 【发布时间】:2015-09-19 09:05:35 【问题描述】:

我的故事板中有多个 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 或设置委托的解决方案,请详细说明。谢谢!

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

哎呀!做到了!谢谢@Nishant!我马上给你标记正确的答案。虽然我在这里,但如果 TabBarController 是我的初始视图控制器,我该如何更改它的 imageRenderingMode?​​span> 谢谢。这是一个很好的答案。 ***.com/a/27196023/1463604 如果它不起作用,我将需要一些您可能已经实现的代码 sn-p。您可以为它添加一个新问题并给我它的链接。

以上是关于iOS 在整个应用程序中更改 NavigationBar 外观的主要内容,如果未能解决你的问题,请参考以下文章

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

UINavigationController 背景颜色更改在 iOS 中隐藏后退按钮

使用 react-navigation 更改状态栏颜色

React Native,更改 React Navigation 标题样式

通过整个应用程序更改导航项的颜色?

后堆栈在 Jetpack Navigation 中无法正常工作