用于MFMailComposeViewController的UIStatusBarStyleLightContent
问题描述:
您能否建议我,在iOS> = 9.0中为MFMailComposeViewController
设置状态栏样式的正确方法是什么? 我知道,[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
已被弃用,我无法使用它。 我知道可能的解决方案是增加类别如下:用于MFMailComposeViewController的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
选择和实施中存在的我的应用程序中的所有ViewContollers - (UIStatusBarStyle)preferredStatusBarStyle
(和我有很多他们的) 。 那么,有没有另一种解决方案?
答
好吧,我创建了自己CommonNavigationViewController
,添加了这两种方法:
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
- (UIViewController *)childViewControllerForStatusBarStyle {
return nil;
}
,改变了根类导航控制器在故事板这一个。 它有帮助,现在导航控制器堆栈中出现的所有VC都具有灯状态栏。但无论如何,我不喜欢这个解决方案:(
当你想重写某些东西时添加一个类别是错误的,所以它不是一个解决方案 – igrek
参考https://stackoverflow.com/a/ 5272612/907692了解详情 – igrek