在 iOS 中为不同的 UIViewController 设置不同的 UINavigatiobar 颜色?

Posted

技术标签:

【中文标题】在 iOS 中为不同的 UIViewController 设置不同的 UINavigatiobar 颜色?【英文标题】:Set Different UINavigatiobar color for different UIViewController in iOS? 【发布时间】:2014-12-06 11:31:03 【问题描述】:

我有一个带有 3 个 UIViewController 的示例项目,我想更改每个 Viewcontroller 的 UINavigationbar 颜色。

我尝试在 ViewDidAppear 方法中使用此代码,但它没有改变。

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed: @"bg.png"]
                                              forBarMetrics:UIBarMetricsDefault];

【问题讨论】:

【参考方案1】:

事实上,您的代码是为导航栏设置背景的,这是真的。但是如果你想为每个 Viewcontroller 导航栏设置颜色,在 ViewController1(比如你的第一个视图控制器)中添加 ViewDidAppear 方法

[self.navigationController.navigationBar setBarTintColor:[UIColor greenColor]];

在 ViewController2(比如你的第二个视图控制器)中添加 ViewDidAppear 方法

[self.navigationController.navigationBar setBarTintColor:[UIColor blueColor]];

然后浏览这些控制器,你会看到导航栏的背景颜色会改变。

但您的问题可能是没有设置 ViewController 自定义类,您可以从身份检查器中进行设置。

【讨论】:

以上是关于在 iOS 中为不同的 UIViewController 设置不同的 UINavigatiobar 颜色?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中为不同的 UIViewController 设置不同的 UINavigatiobar 颜色?

是否可以在一个应用程序中为不同的事物打开和关闭不同的通知? (iOS、安卓)

如何在 iOS 中为不同的 IBAction 赋值?

在 iOS 5 中为 UINavigationBar 设置不同的背景图片

如何在 ios 10 中为不同的本地通知启动不同的视图控制器

如何在 iOS7 SpriteKit 中为不同大小的图像设置动画?