Ios 我的导航栏是透明的,但现在消息应用程序导航栏也是透明的

Ios 我的导航栏是透明的,但现在消息应用程序导航栏也是透明的,ios,navigationbar,Ios,Navigationbar,我已经使导航栏透明,这是伟大的。然而,现在当我在我的应用程序中切换到messages应用程序时,导航栏也是透明的,这看起来真的很奇怪。消息仅部分被阻止,并通过顶部显示 以下是我在appDelegate中为使导航栏消失所做的操作: [[UINavigationBar appearance] setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; [[UINavigationBar appearance] setSha

我已经使导航栏透明,这是伟大的。然而,现在当我在我的应用程序中切换到messages应用程序时,导航栏也是透明的,这看起来真的很奇怪。消息仅部分被阻止,并通过顶部显示

以下是我在
appDelegate
中为使导航栏消失所做的操作:

[[UINavigationBar appearance] setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[UIImage new]];

正如你所能想象的,在消息传递应用程序中没有导航栏是很奇怪的。如何更改此视图的外观?

您应该在系统消息VC显示之前和关闭之后重新设置该外观。UIAppearance确实更改了应用程序中所有类的外观,包括系统提供的VC

谢谢,朱布阿齐兹。
看看这个问题:

你的答案激发了我的灵感,下面是我如何解决这个问题的。首先,在调用messages应用程序显示消息的方法中,我将导航栏的图像设置为nil,这会将其恢复为默认外观

[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
然后在用户返回的视图控制器的viewwillappease方法中,我只是再次使用了这段代码

[[UINavigationBar appearance] setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];

在将其设置为空图像之前,能否调用backgroundImageForBarMetrics,缓存结果,然后调用setBackgroundImage,并在需要不透明条时将原始图像传递回?jeffamaphone您提出了一个非常好的建议。然而,在使用上述代码之前,我试图保存图像,但仍然只能得到一个nil图像。奇怪的无论如何,谢谢你的想法。没错,你应该添加一些代码。你刚才说的话在这里解释。也许有更干净的方法,但是。。它做的工作!