状态栏隐藏问题,当存在QLPreview控制器时

时间:2014-03-26 06:27:54

标签: ios iphone ios7 statusbar qlpreviewcontroller

以下是我的代码:

QLPreviewController *previewController=[[QLPreviewController alloc]init];

previewController.delegate = self;
previewController.dataSource = self;
[self presentViewController:previewController animated:YES completion:NULL]; 

我已将基于状态栏属性的 ViewController 设置为NO。

当我出现 QLPreviewController 时,状态栏会被隐藏。 请告诉我这个问题的解决方案。

4 个答案:

答案 0 :(得分:1)

试试这个...

QLPreviewController *previewController=[[QLPreviewController alloc]init];
previewController.delegate = self;
previewController.dataSource = self;
[self presentViewController:previewController animated:YES completion:^{ [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];}];

答案 1 :(得分:0)

检查应用程序info.plist文件中是否设置了以下属性。

<key>UIStatusBarHidden</key>
    <true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>

答案 2 :(得分:0)

如果您没有使用基于视图控制器的状态栏控件(这对于与iOS6及更早版本兼容的应用程序有意义),您可以通过在显示的视图中添加一行来控制是否显示状态栏控制器的viewWillAppear:方法。 要显示状态栏,请添加

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];

答案 3 :(得分:0)

在iOS 7中,如果您的视图控制器类实际上是导航控制器,则需要覆盖它所显示的视图控制器的- (BOOL)prefersStatusBarHidden方法。