2017-02-25 86 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