首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MFMailComposeViewController中的iOS 7状态条是黑色的

MFMailComposeViewController中的iOS 7状态条是黑色的
EN

Stack Overflow用户
提问于 2013-09-22 15:19:25
回答 13查看 18.4K关注 0票数 59

我有一个反馈按钮在我的ios 7应用程序与MFMailComposeViewController。用户单击此按钮后,mailcomposer将打开,但statusbar更改为黑色。有人知道我能做什么吗?

我只对ios7有这个问题。我为ios7定制了应用程序。

代码语言:javascript
运行
复制
    MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init];
            mailController.mailComposeDelegate = self;

            [mailController setSubject:@"Feedback"];
            // Fill out the email body tex
            NSString *emailBody = [NSString stringWithFormat:@"testest"],
                                   [UIDevice currentDevice].model,
                                   [UIDevice currentDevice].systemVersion];
            [mailController setMessageBody:emailBody isHTML:NO];
            [mailController setToRecipients:[NSArray arrayWithObjects:@"support@test.com",nil]];

            dispatch_async(dispatch_get_main_queue(), ^{
                [self presentModalViewController:mailController animated:YES];
}
EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2013-10-04 19:32:24

在您的UIApplication statusBarStyle的presentViewController完成块中设置MFMailComposeViewController。即

代码语言:javascript
运行
复制
    MFMailComposeViewController *mailVC = [[MFMailComposeViewController alloc] init];
    [self.navigationController presentViewController:mailVC animated:YES completion:^{
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    }];

您还可能需要在Info.plist文件中将“基于视图控制器的状态栏外观”添加和/或设置为NO。

票数 143
EN

Stack Overflow用户

发布于 2013-09-25 12:52:26

尝试将类别添加到MFMailComposeViewController

编辑:如果“查看基于控制器的状态栏外观”==是有效的,则此解决方案有效。

代码语言:javascript
运行
复制
@implementation MFMailComposeViewController (IOS7_StatusBarStyle)

-(UIStatusBarStyle)preferredStatusBarStyle
{
   return UIStatusBarStyleLightContent;
}

-(UIViewController *)childViewControllerForStatusBarStyle
{
   return nil;
}

@end
票数 58
EN

Stack Overflow用户

发布于 2015-10-29 14:00:32

快速解决方案。将View controller-based status bar appearance设置为YES

代码语言:javascript
运行
复制
import UIKit
import MessageUI
import AddressBookUI

extension MFMailComposeViewController {
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .LightContent
    }

    override func childViewControllerForStatusBarStyle() -> UIViewController? {
        return nil
    }
}

extension ABPeoplePickerNavigationController {
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .LightContent
    }

    override func childViewControllerForStatusBarStyle() -> UIViewController? {
        return nil
    }
}
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18945390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档