我在info,plist上將基於視圖控制器的狀態欄外觀設置爲NO。我還設置了application.statusBarHidden = true,但是當QLPreviewControl出現時,狀態欄自動重新出現。我不想在我的應用程序上使用狀態欄。它怎麼可能被隱藏?QLPreviewController在Swift上表現爲它自己的應用程序
0
A
回答
0
QLPreviewController通過XPC從單獨的系統進程中爲您工作。這就是爲什麼你試圖改變它的一切可能並沒有真正改變。
此外,它還根據全屏模式(例如打開PDF文件並點擊導航欄)以自己的方式管理狀態欄。
但是,您可以繼承它並嘗試覆蓋您自己的控制器中的屬性。
嘗試設置在子類/清除以下屬性:
modalPresentationCapturesStatusBarAppearance = true
prefersStatusBarHidden = true
setNeedsStatusBarAppearanceUpdate()
可能是因爲你將不得不恢復狀態欄隱藏狀態用戶點擊後導航欄上的隱藏,然後再次選擇表現出來。
0
我有同樣的問題,並找到了類似的解決方案。在Objective-C中,這些步驟對我有效:
- 子類
QLPreviewController
。在.h文件中,添加@import QuickLook;
。 在.m文件,添加此方法:
- (BOOL)prefersStatusBarHidden { return YES; }
在info.plist中,如果布爾屬性「查看基於控制器的狀態欄的外觀」存在時,其值設置爲YES。
在你的AppDelegate類,這行添加到
didFinishLaunchingWithOptions
:[UIApplication sharedApplication].statusBarHidden = YES;
如果你的Info.plist文件中已經有了「狀態欄最初是隱藏的」設置爲YES時,可能不需要第4步。
相關問題
- 1. 包括現有的應用程序如在自己的應用程序片段
- 2. 在Swift中爲iOS應用程序創建自己的數據庫
- 3. Instagram sdk在自己的應用程序
- 4. 應用程序在mercurial repository中訪問它自己的版本
- 5. 用我們自己的Android應用程序寫在MifareClassic卡上
- 6. 使用自己開發的Bada應用程序爲自己的智能手機
- 7. 可能用Apple AirPlay實現自己的Linux應用程序?
- 8. 如何在Ubuntu上安裝自己的應用程序
- 9. 如何在Android上製作自己的應用程序地圖?
- 10. 在你自己的服務器上運行meteor.js應用程序
- 11. SWFLoader加載子應用程序,訪問它自己的資源
- 12. Flex應用程序能檢測它自己的URL嗎?
- 13. UIDocumentInteractionController - 我們自己的應用程序顯示在列表中
- 14. SharedApplication.openUrl隱藏自己的應用程序
- 15. 獲取HWND爲我自己的應用程序在C
- 16. 在PTVS外殼VS2013爲自己的應用程序
- 17. Python:修改它自己的程序
- 18. 我自己的應用程序出現故障C++
- 19. 爲自己的應用程序訪問「關於應用程序」頁面
- 20. 爲什麼我的自動運行應用程序在Vista上表現怪異?
- 21. 爲什麼JavaFx應用程序必須從它自己的類中啓動?
- 22. 後從自己的應用程序的Facebook牆上
- 23. Facebook/Twitter是否使用oAuth爲自己的應用程序?
- 24. 爲什麼許多WebSocket庫實現自己的應用程序級心跳?
- 25. 爲WebRTC應用程序實現我們自己的STUN/TURN服務器
- 26. IIS7.5應用程序在根目錄中使用web.config而不是它自己的!
- 27. 現在應用程序啓動它不
- 28. 爲我的C#應用程序創建我自己的Dll
- 29. 應用程序構建。 (Ubuntu上的Swift)
- 30. 在我自己的應用程序中集成另一個Android應用程序