break
以上代码我无法显示pdf文件。有人可以帮忙吗?
答案 0 :(得分:3)
通过查看代码,您似乎错过了添加 UIDocumentInteractionControllerDelegate 委托方法。
class ViewController: UIViewController,UIDocumentInteractionControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
var docController = UIDocumentInteractionController.init(url: URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(urlVal!))
docController.delegate = self
docController.presentPreview(animated: true)
}
func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
return self
}
}
或强>
您还可以通过将PDF加载到 WKWebView 来查看PDF。
override func viewDidLoad() {
super.viewDidLoad()
let pdfFilePath = Bundle.main.url(forResource: "iostutorial", withExtension: "pdf")
let urlRequest = URLRequest.init(url: pdfFilePath!)
webView = WKWebView(frame: self.view.frame)
webView.load(request)
self.view.addSubview(webView)
}
答案 1 :(得分:0)
基本上你缺少UIDocumentInteractionControllerDelegate实现。对于预览,您应该实现此方法
func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController
返回ViewController需要显示预览的内容。如果您通过自我视图控制器,它将以模态方式在现有视图控制器中显示PDF预览。如果要在同一个控制器中显示预览,只需在View控制器中执行此操作。
func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
return self
}
如果您已在代码中执行此操作,则很有可能PDF URL路径可能出错。
答案 2 :(得分:0)
我会使用Quicklook框架,它支持多种文档类型:
支持共享相关文档,并且易于实施。
关于如何在Swift中执行此操作:https://www.appcoda.com/quick-look-framework/
答案 3 :(得分:0)
雨燕5
导入此框架
import SafariServices
然后在需要时调用此句子
if let url = URL(string: "YOUR_PDF_URL") {
let config = SFSafariViewController.Configuration()
config.entersReaderIfAvailable = true
let vc = SFSafariViewController(url: url, configuration: config)
present(vc, animated: true)
}
代码将显示带有pdf的Safari视图。