我正在设置外观协议以为我的所有导航栏添加自定义图像。这按预期工作,但我不想更改 MFMailComposeViewController 导航栏的外观。
如何使这个导航栏成为默认导航栏?
[[UINavigationBar appearance] setBackgroundImage:[ApplicationStyle navigationBarImage] forBarMetrics:UIBarMetricsDefault];
我正在设置外观协议以为我的所有导航栏添加自定义图像。这按预期工作,但我不想更改 MFMailComposeViewController 导航栏的外观。
如何使这个导航栏成为默认导航栏?
[[UINavigationBar appearance] setBackgroundImage:[ApplicationStyle navigationBarImage] forBarMetrics:UIBarMetricsDefault];
当appearance
UI 包含在特定类中时,代理使您能够通过 -appearanceWhenContainedIn 方法修改其外观。您可以将图像设置为 nil 以防止它显示在 MFMailComposeViewController 类中,如下所示。[[UINavigationBar appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
根据这个问题,您需要在呈现模态 MFMailComposeViewController 之前和之后更改外观代理,以便将其外观改回原来的样子。