全屏 UIViewController 的 StatusBarStyle
Posted
技术标签:
【中文标题】全屏 UIViewController 的 StatusBarStyle【英文标题】:StatusBarStyle for Full Screen UIViewController 【发布时间】:2014-04-03 17:32:29 【问题描述】:我目前有一个将状态栏样式设置为浅色内容的应用程序。
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
除了全屏模式窗口外,这按预期工作。下面是创建模态 UIViewController 的代码:
@implementation PostCard
- (id)initWithToRecipients:(NSArray *)toRecipients subject:(NSString *)subject message:(NSString *)message ishtml:(BOOL)isHTML
if ([MFMailComposeViewController canSendMail] && (self = [super init]))
self.viewController = [MFMailComposeViewController new];
self.viewController.mailComposeDelegate = self;
[_viewController setToRecipients:toRecipients];
[_viewController setSubject:subject];
[_viewController setMessageBody:message isHTML:isHTML];
self.viewController.modalPresentationStyle = UIModalPresentationFullScreen;
self.viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
else
NSLog(@"Cannont send mail from current device.");
return self;
...
@end
明信片的视图控制器显示为
[myOtherViewController presentViewController:myPostCard.viewController animated:YES completion:nil];
在全屏模式下,statusBarStyle
恢复为深色内容。如果我将modalPresentationStyle
更改为UIModalPresentationFormSheet
,则会保留灯光内容。
有没有办法以编程方式设置模式窗口的“statusBarStyle”?或者告诉它从呈现的 UIViewController 继承?或者这是一个错误? (注意,我也尝试过设置我的项目属性,但没有成功。)
提前致谢!
【问题讨论】:
【参考方案1】:- (UIStatusBarStyle)preferredStatusBarStyle
return UIStatusBarStyleLightContent;
【讨论】:
以上是关于全屏 UIViewController 的 StatusBarStyle的主要内容,如果未能解决你的问题,请参考以下文章
在不覆盖全屏的 UIViewController 中模态显示 UIViewController
iOS - 在 UINavigationController 中将 UIViewController 显示为全屏
PresentViewController 一个带有 UINavigationController 的非全屏 UIViewController
模态 UIViewController 总是在 iPad 上全屏显示。为啥?