自定义 UINavigationBar 背景适用于除一个之外的所有导航控制器

Posted

技术标签:

【中文标题】自定义 UINavigationBar 背景适用于除一个之外的所有导航控制器【英文标题】:Custom UINavigationBar Background Working on all Navigation Controllers Except One 【发布时间】:2013-12-14 20:56:48 【问题描述】:

我有一系列由根导航控制器连接的视图控制器。所有的视图控制器都是表视图,除了一个是视图控制器。

我有一个自定义的 navigationBar 图像,我在 App Delegate 中应用了它,它在任何地方都很好用,除了这个视图控制器。这样,当 segue 发生(Push)时,它几乎将自定义背景与另一个图像强加在一起,结果是一个更暗的 uinavigationBar。

我在 App Delegate 中的代码是:

UIImage *nav = [UIImage imageNamed:@"Purple.png"];
[UINavigationBar appearance] setBackgroundImage:nav forBarMetrics:UIBarMetricsDefault];

是否有人对我可以做些什么来确保此视图控制器维护正确的自定义 UINavigationBar 有任何想法?

在这个视图的viewDidLoad中,我什至尝试过设置这个:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"Purple.png"] forBarMetrics:UIBarMetricsDefault];

我也在 viewWillAppear 中尝试过这个,但没有 - 仍然是那个更暗的图像。

任何想法将不胜感激!

【问题讨论】:

【参考方案1】:

你写错了

UIImage *nav = [UIImage imageNamed:"@Purple.png@];

用这个替换它

UIImage *nav = [UIImage imageNamed:@"Purple.png"];

【讨论】:

抱歉 - 这是我在写出问题时的一个不幸的错字 - Safari 在该机器上复制/粘贴速度太慢!在问题中更正 对不起@thorb - 你有什么办法解决这个问题吗?

以上是关于自定义 UINavigationBar 背景适用于除一个之外的所有导航控制器的主要内容,如果未能解决你的问题,请参考以下文章

删除 MFMailComposer 和 MFMessageComposer 的自定义 UINavigationBar

UINavigationBar 问题的自定义背景

UINavigationBar 自定义标题被背景隐藏

UINavigationBar 自定义背景与悬垂(iOS 5)

如何使用自定义背景图像从 UINavigationBar 和 UIToolbar 中删除圆角?

iOS 11 UINavigationBar 自定义背景总是在状态栏下扩展