首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QLPreviewController在Swift上表现为自己的应用程序

QLPreviewController在Swift上表现为自己的应用程序
EN

Stack Overflow用户
提问于 2015-11-22 10:44:41
回答 2查看 618关注 0票数 0

我将视图基于控制器的状态栏外观设置为NO on info,plist。我还设置了application.statusBarHidden = true,但当显示QLPreviewControl时,状态栏会自动重新出现。我不想让statusbar出现在我的应用程序中。它怎么会被隐藏起来呢?

EN

回答 2

Stack Overflow用户

发布于 2015-11-22 11:03:01

通过XPC,QLPreviewController可以在独立的系统进程中为您工作。这就是为什么你试图在它上面改变的所有东西在真实的实例上都不会被改变。

此外,它以自己的方式管理状态栏,这取决于全屏模式(例如,当您打开PDF文件并点击导航栏时)。

但是,您可以将其子类化,并尝试在您自己的控制器中覆盖您的属性。

尝试在以下属性的子类中设置/重写:

代码语言:javascript
运行
复制
modalPresentationCapturesStatusBarAppearance = true
prefersStatusBarHidden = true
setNeedsStatusBarAppearanceUpdate()

可能的情况是,在用户点击导航栏以隐藏,然后再次点击以显示它之后,您将不得不恢复状态栏隐藏状态。

票数 0
EN

Stack Overflow用户

发布于 2016-03-15 09:04:23

我也遇到了同样的问题,并找到了类似的解决方案。在Objective-C中,这些步骤对我有效:

  1. 子类QLPreviewController。在.h文件中,添加.m文件,添加以下行{ }
    1. In .h;}
      1. In.m info.plist,如果存在布尔属性“查看基于控制器的状态栏外观”,则将其值设置为YES。
      2. 在AppDelegate类中,将以下行添加到didFinishLaunchingWithOptionsUIApplication sharedApplication.statusBarHidden = YES;

如果您的info.plist文件已将“状态栏最初隐藏”设置为“是”,则可能不需要第4步。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33851070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档