0

我正在设置外观协议以为我的所有导航栏添加自定义图像。这按预期工作,但我不想更改 MFMailComposeViewController 导航栏的外观。

如何使这个导航栏成为默认导航栏?

[[UINavigationBar appearance] setBackgroundImage:[ApplicationStyle navigationBarImage] forBarMetrics:UIBarMetricsDefault];
4

1 回答 1

1

appearanceUI 包含在特定类中时,代理使您能够通过 -appearanceWhenContainedIn 方法修改其外观。您可以将图像设置为 nil 以防止它显示在 MFMailComposeViewController 类中,如下所示。[[UINavigationBar appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

根据这个问题,您需要在呈现模态 MFMailComposeViewController 之前和之后更改外观代理,以便将其外观改回原来的样子。

覆盖 MFMailComposeViewController 的 UIAppearance 属性

于 2013-07-08T22:32:18.707 回答