我将视图基于控制器的状态栏外观设置为NO on info,plist。我还设置了application.statusBarHidden = true,但当显示QLPreviewControl时,状态栏会自动重新出现。我不想让statusbar出现在我的应用程序中。它怎么会被隐藏起来呢?
发布于 2015-11-22 11:03:01
通过XPC,QLPreviewController可以在独立的系统进程中为您工作。这就是为什么你试图在它上面改变的所有东西在真实的实例上都不会被改变。
此外,它以自己的方式管理状态栏,这取决于全屏模式(例如,当您打开PDF文件并点击导航栏时)。
但是,您可以将其子类化,并尝试在您自己的控制器中覆盖您的属性。
尝试在以下属性的子类中设置/重写:
modalPresentationCapturesStatusBarAppearance = true
prefersStatusBarHidden = true
setNeedsStatusBarAppearanceUpdate()可能的情况是,在用户点击导航栏以隐藏,然后再次点击以显示它之后,您将不得不恢复状态栏隐藏状态。
发布于 2016-03-15 09:04:23
我也遇到了同样的问题,并找到了类似的解决方案。在Objective-C中,这些步骤对我有效:
QLPreviewController。在.h文件中,添加.m文件,添加以下行{ }didFinishLaunchingWithOptionsUIApplication sharedApplication.statusBarHidden = YES;如果您的info.plist文件已将“状态栏最初隐藏”设置为“是”,则可能不需要第4步。
https://stackoverflow.com/questions/33851070
复制相似问题