Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios7 UIDocumentInteractionController与iOS 7中的状态栏重叠_Ios7_Statusbar - Fatal编程技术网

Ios7 UIDocumentInteractionController与iOS 7中的状态栏重叠

Ios7 UIDocumentInteractionController与iOS 7中的状态栏重叠,ios7,statusbar,Ios7,Statusbar,我有一个iPad应用程序,我正在迁移到iOS 7。状态栏的大多数“问题”已经解决,但遗憾的是还有一个问题。 当我使用UIDocumentInteractionController打开一个PDF文档时,我会得到一个漂亮的文档预览。但当我点击pdf获取“打开时…”对话框的状态栏和关闭按钮时。它与状态栏重叠 我尝试使用edgesForExtendedLayout方法。但是UIDocumentInteractionController不接受它。 如何防止状态栏与UIDocumentInteractio

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

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

我想您的视图控制器是以模式显示的

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

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

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

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

这将推送UIDocumentInteractionController,而不是将其显示为全屏模式VC,并且不会破坏视图控制器。

找到了新的解决方案

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

对于像我这样在iOS8中遇到此问题的任何其他人来说:问题似乎在iOS8中出现了。您需要从info.plist中删除UIViewControllerBasedStatusBarAppearance键,以便状态栏在UIDocumentInteractionController中显示正确

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


至少这一次对我是有效的。

正如powpow所建议的,我提供了导航控制器作为UIDocumentInteractionController的viewcontroller。这在某种意义上起作用,预览被推到导航控制器上,状态栏看起来不错!但是,我并没有在任何地方使用导航控制器,在UISplitview中,预览只覆盖屏幕的一部分。