iOS 8:状态栏不适用于 UIImagePickerController

Posted

技术标签:

【中文标题】iOS 8:状态栏不适用于 UIImagePickerController【英文标题】:iOS 8: status bar doesn't work with UIImagePickerController 【发布时间】:2015-02-08 09:34:53 【问题描述】:

我有一个 UIImagePickerController 的视图..

在我的整个应用程序中:

/* white color */
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

但在这种情况下我需要查看黑色状态栏,所以我设置它:

/* black color */ 
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];

我已经在委托中这样做了

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;

但似乎无视指令。

仅适用于 ios this question 和其他内容,但我无法使其工作。

【问题讨论】:

【参考方案1】:

如果您想更改特定视图方式,只需从您的 xib / storyboad 更改它即可。

【讨论】:

【参考方案2】:

在呈现 UIImagePickerViewController 时尝试这样:

[self presentViewController:imagePickerController animated:YES completion:^
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
];

【讨论】:

【参考方案3】:

我通过这种方式解决了我的问题:

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];

if(IS_IOS8_AND_UP) 
    imagePickerController.modalPresentationStyle = UIModalPresentationFullScreen;
 else 
    imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;


imagePickerController.delegate = self;
[self presentViewController:imagePickerController animated:YES completion:nil];

然后在委托中设置默认状态栏样式。

希望对您有所帮助!

【讨论】:

以上是关于iOS 8:状态栏不适用于 UIImagePickerController的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController 中的 UITabBarController 适用于 iOS 8 但不适用于 7

Android:半透明状态栏不适用于 Google Maps API

创建新的状态栏不适用于 targetSdkVersion 30

透明状态栏不适用于 windowTranslucentNavigation="false"

反应本机状态栏不适用于android中的反应导航

当应用程序处于非活动状态时,GCM 推送通知不适用于 iOS