I created a custom class named PreviewFile:
class PreviewFile: UIViewController , UIDocumentInteractionControllerDelegate {
var documentInteractionController = UIDocumentInteractionController()
func previewFile(name:String) {
let documentsURL = NSURL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!,isDirectory: true )
let urlToMyPath = documentsURL.appendingPathComponent(name)!
documentInteractionController = UIDocumentInteractionController(url: urlToMyPath)
documentInteractionController.delegate = self
documentInteractionController.presentPreview(animated: true)
}
public func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
return self
}
}
Then I call the previewFile method on a ViewController :
var preview = PreviewFile()
preview.previewFile(name:"guide.pdf")
But compiler gives me this error :
Warning: Attempt to present on whose view is not in the window hierarchy!