MailComposeViewController不保持状态栏样式

时间:2013-10-28 20:23:38

标签: ios ios7 mfmailcomposeviewcontroller

我在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];

3 个答案:

答案 0 :(得分:1)

我认为在MFMailViewController中设置barStyle是不可访问的,除非因为Apple代码中的私有API。您可以将UINavigationBar设置为app委托中的某个图片的原因是因为在app委托中,您调用的是UINavigationBar类的外观,而不是MFMailViewController导航栏的色调。

希望这有帮助

答案 1 :(得分:0)

我也遇到了这个问题,并找到了以下答案:

MFMailComposeViewController in iOS 7 statusbar are black

答案 2 :(得分:0)

在info.plist中添加新行:

  

UIViewControllerBasedStatusBarAppearance

将其设置为:

  

NO

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

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

}];