2017-02-25 82 views
1

我有時會遇到QLPreviewController顯示空白灰色屏幕的問題。iOS 10 - QLPreviewController顯示灰色屏幕?

enter image description here

該文件中的文件系統(模擬器)存在(我可以正常使用Acrobat Reader軟件從文件系統中打開)

生病只能使用:

func numberOfPreviewItems(in controller: QLPreviewController) -> Int { 
    return 1 
} 

func documentsDirectoryURL() -> URL { 
    let manager = FileManager.default 
    let URLs = manager.urls(for: .documentDirectory, in: .userDomainMask) 
    return URLs[0] 
} 

func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem { 
    let filepath = "bericht_\(self.task.remoteID!).pdf" 

    print(filepath) 
    print(documentsDirectoryURL().appendingPathComponent(filepath)) // FILEPATH CORRECT, file is there 

    return documentsDirectoryURL().appendingPathComponent(filepath) as QLPreviewItem 
} 

相同的代碼工作與其他文件沒有任何問題。有任何想法嗎?

編輯:我現在手動刪除文件,並讓iOS再次創建它。

第一次:QLPreviewController顯示PDF 第二次:保持灰色。

其他文件很好。

+0

你有沒有發現這方面的任何解決方案? –

回答

0

子類時QLPreviewController,看看...

import QuickLook 

class MyPreviewController: QLPreviewController { 

    override func viewWillAppear(animated: Bool) { 
     super.viewWillAppear(animated) 

    // Set navigation item nil 
     navigationItem.leftBarButtonItems = nil 
    } 

} 
+0

然後看看是什麼?控制器在這裏,文件在這裏,委託方法被調用。那麼爲什麼要繼承? – derdida

+0

由於某些屬性不允許使用實例對象進行設置。它們是在編譯時設置的(當你的類被加載時)。試試這個,看看你是否得到解決方案。 – 2017-02-26 01:44:28