我在获取捆绑包中文件的路径/url时遇到问题。这是我使用的代码
@IBOutlet weak var testWebView: UIWebView!
private func setText() {
if let path = Bundle.main.path(forResource: "theory", ofType: "pdf") {
let url = NSURL(fileURLWithPath: path)
let request = NSURLRequest(url: url as URL)
testWebView.loadRequest(request as URLRequest)
}
}
override func viewDidLoad() {
super.viewDidLoad()
// setText()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
setText()
}
文件理论.pdf在主捆绑包中(没有子文件夹等)我尝试了这里讨论的许多方法,例如使用创建组/创建文件夹引用等进行复制 - 没有任何帮助。webView 在情节提要中设置。
如果您
的目标是显示PDF,我强烈建议您使用UIDocumentInteractionController
class ViewController: UIViewController {
private var documentInteractionController: UIDocumentInteractionController?
private func setText() {
if let path = Bundle.main.path(forResource: "theory", ofType: "pdf") {
let url = URL(fileURLWithPath: path)
let controller = UIDocumentInteractionController(url: url)
controller.delegate = self
controller.presentPreview(animated: true)
documentInteractionController = controller
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
setText()
}
}
您还需要实现UIDocumentInteractionControllerDelegate
:
extension ViewController: UIDocumentInteractionControllerDelegate {
func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
return self
}
}
谢谢大家。我解决了问题。我没有将 PDF 拖放到捆绑包中,而是右键单击项目导航器并选择将文件添加到...此后,在上传的文件上再次右键单击并选择添加...。终于成功了。再次感谢。现在我将试验你的建议。