1

我遇到了 MFMailComposeViewController 中的导航栏问题。

我有一个应用程序,我们在 plist 文件中将“状态栏样式”设置为“UIStatusBarStyleLightContent”。除了我调用 MFMailComposeViewController 时,它在所有视图中都能完美运行。它回到黑色。其余的还可以。我们有一个可以继承的自定义图像,我可以毫无问题地设置色调。有人知道怎么修这个东西吗?如何在邮件中将“状态栏样式”重置为“UIStatusBarStyleLightContent”?

在 AppDelegate

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"headerLogo.png"] forBarMetrics:UIBarMetricsDefault];

来电邮件

    MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init];
    mailController.mailComposeDelegate = self;

    [[mailController navigationBar] setTintColor:[UIColor whiteColor]];
    [[mailController navigationBar] setBarTintColor:[UIColor whiteColor]];

    [self presentViewController:mailController animated:YES completion:nil];
4

2 回答 2

1

我相信在 MFMailViewController 中设置 barStyle 是无法访问的,除非因为 Apple 代码中的私有 API。之所以能够在应用程序委托中将 UINavigationBar 设置为某个图片,是因为在应用程序委托中,您调用的是 UINavigationBar 类的外观,而不是 MFMailViewController 导航栏的色调。

希望这可以帮助

于 2013-10-28T21:02:30.047 回答
0

在 info.plist 添加新行:

UIViewControllerBasedStatusBar外观

将其设置为:

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

[self presentViewController: mail animated: YES completion: ^ {
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

}];
于 2016-11-22T09:20:47.677 回答