UIDocumentInteractionController在iOS 7中与状态栏重叠。

4
我有一个iPad应用程序,我正在将其迁移到iOS 7。大多数与状态栏相关的问题都已解决,但可悲的是还剩下一个。 当我使用UIDocumentInteractionController打开PDF文档时,会得到一个漂亮的文档预览。但当我点击PDF以获取“打开方式...”对话框和关闭按钮的状态栏时,它会与状态栏重叠。
我尝试使用edgesForExtendedLayout方法。但是UIDocumentInteractionController不接受它。 我如何防止状态栏重叠UIDocumentInteractionController视图?
3个回答

2

发现新的解决方案。

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


1

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

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

至少对我来说,这次方法有效。


0

我猜你的视图控制器是以模态方式呈现的?

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

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

  • 以模态方式呈现导航控制器

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

这将推送UIDocumentInteractionController而不是将其作为全屏模态VC呈现,并且不会破坏你的视图控制器。


按照 powpow 的建议,我将 Navigation controller 提供为 UIDocumentInteractionController 的 viewcontroller。这种方法在某种程度上可行,因为预览会推送到导航控制器上,状态栏看起来不错!但是,并不是每个地方都使用 Navigation Controller,在 UISplitview 中预览只覆盖了屏幕的一部分。 - Deddiekoel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接