MFMailComposeViewController 的 UIStatusBarStyleLightContent
UIStatusBarStyleLightContent for MFMailComposeViewController
你能给我建议吗,在 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
(我有很多)。
那么,还有其他解决方案吗?
好的,我创建了自己的 CommonNavigationViewController
,添加了这两个方法:
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
- (UIViewController *)childViewControllerForStatusBarStyle {
return nil;
}
并将Storyboard中Root Navigation Controller的class改成了这个。
它有帮助,现在出现在导航控制器堆栈中的所有 VC 都有灯光状态栏。但无论如何,我不喜欢这个解决方案:(
(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
将此添加到 yourviewcontroller.m
文件。
你能给我建议吗,在 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
(我有很多)。
那么,还有其他解决方案吗?
好的,我创建了自己的 CommonNavigationViewController
,添加了这两个方法:
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
- (UIViewController *)childViewControllerForStatusBarStyle {
return nil;
}
并将Storyboard中Root Navigation Controller的class改成了这个。 它有帮助,现在出现在导航控制器堆栈中的所有 VC 都有灯光状态栏。但无论如何,我不喜欢这个解决方案:(
(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
将此添加到 yourviewcontroller.m
文件。