导航栏在QLPreviewController中与状态栏重叠

时间:2014-01-20 20:14:20

标签: ios objective-c cocoa-touch uiviewcontroller qlpreviewcontroller

我第一次处理QLPreviewController并遇到状态栏重叠的导航栏问题。以下是我遇到此问题的步骤:

  1. 点击UI以模式方式启动QLPreviewController。这在这里工作正常。我看到导航栏和状态栏已正确对齐。
  2. 点击QLPreviewController中加载的视图。导航栏已隐藏。
  3. 再次点击QLPreviewController中加载的视图。显示导航栏,导航栏与状态栏重叠。请参阅随附的屏幕截图。
  4. 知道这里有什么不对吗?

    PS:仅在横向模式下发生这种情况。纵向模式工作正常。

    这是我的代码:

    QLPreviewController *aQLPreviewController = [[QLPreviewController alloc] init];
    aQLPreviewController.dataSource = self;
    aQLPreviewController.delegate = self;
    [myViewController presentViewController:aQLPreviewController animated:YES completion:NULL];
    

    QLPreviewController委托方法:

    - (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *)iController {
        return 1;
    }
    
    
    - (id <QLPreviewItem>) previewController: (QLPreviewController *) iController previewItemAtIndex: (NSInteger) iIndex {
        if (iIndex == 0) {
            return self.myURL;
        } else {
            return nil;
        }
    }
    
    
    - (void)previewControllerDidDismiss:(QLPreviewController *)iController {
        self.myURL = nil;
    }
    

    enter image description here

2 个答案:

答案 0 :(得分:11)

它对我有用:

- (BOOL)prefersStatusBarHidden {
    return NO;
}

答案 1 :(得分:2)

通过在info.plist中添加UIViewControllerBasedStatusBarAppearance布尔键并指定值“NO”来解决此问题。