【问题标题】:UIDocumentInteractionController overlaps statusbar in iOS 7UIDocumentInteractionController 与 iOS 7 中的状态栏重叠
【发布时间】:2013-10-18 09:32:58
【问题描述】:

我有一个 iPad 应用程序,我正在迁移到 iOS 7。状态栏的大多数“问题”都已解决,但遗憾的是还有一个问题。 当我使用 UIDocumentInteractionController 打开 PDF 文档时,我得到了不错的文档预览。但是,当我点击 pdf 以获取“打开方式...”对话框和关闭按钮的状态栏时。它与状态栏重叠。

我尝试使用 edgesForExtendedLayout 方法。但 UIDocumentInteractionController 不接受它。 如何防止状态栏与 UIDocumentInteractionController 视图重叠?

【问题讨论】:

    标签: ios7 statusbar


    【解决方案1】:

    找到了新的解决方案。

    在 info.plist 文件中为 iOS 7 添加: UIViewControllerBasedStatusBarAppearance(基于视图控制器的状态栏外观)= NO

    【讨论】:

      【解决方案2】:

      对于像我这样在 iOS8 上遇到此问题的其他人:看来问题在 iOS8 中被翻转了。您需要从 info.plist 中删除 UIViewControllerBasedStatusBarAppearance 键,以便状态栏在 UIDocumentInteractionController 中正确显示。

      根据需要在每个 UIViewController 上实现 prefersStatusBarHidden

      至少这一次对我有用。

      【讨论】:

        【解决方案3】:

        我猜你的视图控制器是模态的?

        如果是这种情况,我找到的唯一解决方案是:

        • 将您的视图控制器嵌入到导航控制器中

        • 模态显示导航控制器

        • 在 documentInteractionControllerViewControllerForPreview 中返回导航控制器而不是视图控制器

        这将推动 UIDocumentInteractionController 而不是将其呈现为全屏模式 VC,并且不会搞砸您的视图控制器。

        【讨论】:

        • 根据 powpow 的建议,我提供了导航控制器作为 UIDocumentInteractionController 的视图控制器。从某种意义上说,预览会被推送到导航控制器上,状态栏看起来不错!但是我并没有在任何地方都使用导航控制器,并且在 UISplitview 中,预览只覆盖了屏幕的一部分。
        猜你喜欢
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        • 2013-09-29
        • 2015-01-21
        • 1970-01-01
        • 2013-09-26
        • 2013-09-22
        • 1970-01-01
        相关资源
        最近更新 更多