iOS 更改整个应用程序中的导航栏外观

use*_*564 4 objective-c uinavigationbar uinavigationcontroller ios

我的故事板中有多个 UINavigationController。由于我使用 tabbarcontroller,每个选项卡项都在 ViewController 之前嵌入了自己的 UINavigationController。

我想同时设计所有这些风格。我尝试过的工作是使用 ViewControllersViewWillAppear方法并添加以下行:

UINavigationBar *nav = self.navigationController.navigationBar;
nav.barStyle = UIBarStyleBlack;
nav.tintColor = [UIColor blackColor];
nav.translucent = NO;
Run Code Online (Sandbox Code Playgroud)

但随后我必须对每个选项卡项和每个 ViewController 执行此操作。

另外,在 AppDelegate 中执行以下操作不起作用:

[[UINavigationBar appearance] setTintColor:[UIColor blackColor]];
[[UINavigationBar appearance] setTranslucent:NO];
Run Code Online (Sandbox Code Playgroud)

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

Nis*_*ant 5

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

[[UINavigationBar appearance] setBarTintColor:[UIColor blackColor]];
Run Code Online (Sandbox Code Playgroud)