我使导航栏变得透明,这很棒。然而,现在当我在我的应用程序中看到消息应用程序时,导航栏也是透明的,这看起来很奇怪。邮件仅部分阻止,并显示在顶部。
以下是我在appDelegate
中所做的工作,以使导航栏消失:
[[UINavigationBar appearance] setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[UIImage new]];
您可以想象,消息应用中没有导航条很奇怪。如何为此视图更改回来?
答案 0 :(得分:1)
您应该在系统消息VC呈现之前和解除之后再次设置该外观。 UIAppearance确实改变了你应用程序内部所有类的外观,包括系统提供的VC。
谢谢,jbouaziz。 看看这个问题:Override UIAppearance property for MFMailComposeViewController
答案 1 :(得分:0)
我的答案给了我灵感,这就是我修复它的方法。首先,在要求显示消息应用程序的方法中,我将导航栏的图像设置为nil,将其恢复为默认外观。
[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
然后在我的viewWillAppear方法中,用户返回的视图控制器,我只是再次使用此代码
[[UINavigationBar appearance] setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];