繁体   English   中英

UIAppearance删除MFMailComposeViewController的自定义导航栏背景

[英]UIAppearance Remove Custom NavBar Background for MFMailComposeViewController

我在我的应用程序的导航控制器中有一个自定义的navBar图像,使用UIAppearance协议设置。 但是,当通过应用程序发送邮件时(通过MFMailComposeViewController ),我想要默认的navBar而不是自定义的navBar。 我尝试了这个问题中概述的方法: UIAppearance为UIPopoverController删除自定义NavBar背景,但它不起作用。 我使用的代码是:

[[UINavigationBar appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

但它没有任何效果。 我的应用程序是iOS 6+。 这是MFMailComposeViewController特有的东西还是我错过了这个?

编辑:尝试的其他方法:

MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
mailer.mailComposeDelegate = self;
mailer.navigationBar.barStyle = UIBarStyleBlack;
[self.navigationController presentViewController:mailer animated:YES completion:nil];
[mailer.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

设置UIBarStyleBlack有一些效果,因为“取消”按钮随后变为黑色,但背景图像仍设置为旧值。

尝试这样的事情:

MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];
[mail.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

这应该重置此实例的背景图像。

删除自定义背景图像

[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

在打电话之前

MFMailComposeViewController *vc = [[MFMailComposeViewController alloc] init];

要点是在init之前为导航栏外观设置任何自定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM