【问题标题】:UIStatusBarStyleLightContent for MFMailComposeViewControllerMFMailComposeViewController 的 UIStatusBarStyleLightContent
【发布时间】:2017-02-21 09:44:18
【问题描述】:

您能否建议我,在 iOS >= 9.0 中为MFMailComposeViewController 设置状态栏样式的正确方法是什么? 我知道,[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 已被弃用,我无法使用它。 我知道可能的解决方案是添加这样的类别:

#import "MFMailComposeViewController+StatusBarStyle.h"
@implementation MFMailComposeViewController (StatusBarStyle)
#pragma mark - Status bar management
- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}
- (UIViewController *)childViewControllerForStatusBarStyle {
    return nil;
}
@end

但在这种情况下,我应该启用 View controller-based status bar appearance 选项并在我的应用程序中存在的所有 ViewContoller 中实现 - (UIStatusBarStyle)preferredStatusBarStyle(我有很多)。 那么,还有其他解决方案吗?

【问题讨论】:

标签: ios objective-c ios9 uistatusbar


【解决方案1】:

好的,我创建了自己的CommonNavigationViewController,添加了这两个方法:

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

- (UIViewController *)childViewControllerForStatusBarStyle {
    return nil;
}

并将 Storyboard 中的 Root Navigation Controller 的类更改为这个类。 它有帮助,现在出现在 Navigation Controller 堆栈中的所有 VC 都有 Light 状态栏。但无论如何,我不喜欢这个解决方案:(

【讨论】:

    【解决方案2】:
    (UIStatusBarStyle)preferredStatusBarStyle
    {
        return UIStatusBarStyleLightContent;
    }
    

    将此添加到yourviewcontroller.m 文件中。

    【讨论】:

    • 欢迎来到 Stack Overflow!请不要只用源代码回答。尝试对您的解决方案如何工作提供一个很好的描述。请参阅:How do I write a good answer?。谢谢
    猜你喜欢
    • 2013-12-23
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多