2015-11-22 20 views

回答

0

QLPreviewController通過XPC從單獨的系統進程中爲您工作。這就是爲什麼你試圖改變它的一切可能並沒有真正改變。

此外,它還根據全屏模式(例如打開PDF文件並點擊導航欄)以自己的方式管理狀態欄。

但是,您可以繼承它並嘗試覆蓋您自己的控制器中的屬性。

嘗試設置在子類/清除以下屬性:

modalPresentationCapturesStatusBarAppearance = true 
prefersStatusBarHidden = true 
setNeedsStatusBarAppearanceUpdate() 

可能是因爲你將不得不恢復狀態欄隱藏狀態用戶點擊後導航欄上的隱藏,然後再次選擇表現出來。

0

我有同樣的問題,並找到了類似的解決方案。在Objective-C中,這些步驟對我有效:

  1. 子類QLPreviewController。在.h文件中,添加@import QuickLook;
  2. 在.m文件,添加此方法:

    - (BOOL)prefersStatusBarHidden { 
        return YES; 
    } 
    
  3. 在info.plist中,如果布爾屬性「查看基於控制器的狀態欄的外觀」存在時,其值設置爲YES。

  4. 在你的AppDelegate類,這行添加到didFinishLaunchingWithOptions

    [UIApplication sharedApplication].statusBarHidden = YES; 
    

如果你的Info.plist文件中已經有了「狀態欄最初是隱藏的」設置爲YES時,可能不需要第4步。

相關問題