我正在设置外观协议,为我的所有导航栏添加自定义图像。这是按预期工作,但我不想改变外观 MFMailComposeViewController的导航栏。
如何制作此导航栏,默认导航栏?
[[UINavigationBar appearance] setBackgroundImage:[ApplicationStyle navigationBarImage] forBarMetrics:UIBarMetricsDefault];
答案 0 :(得分:1)
appearance
代理允许您通过-appearanceWhenContainedIn方法修改特定类中包含的UI的外观。您可以将图像设置为nil,以防止它显示在MFMailComposeViewController类中,如下所示。
[[UINavigationBar appearanceWhenContainedIn:[MFMailComposeViewController class],nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
根据这个问题,您需要在呈现模式MFMailComposeViewController之前和之后更改外观代理,以便将其外观更改回原来的样式。
Override UIAppearance property for MFMailComposeViewController