我收到以下错误
"Unexpectedly found nil while unwrapping an Optional value"
当我尝试在通过容器 View 呈现的 Web View 中加载 PDF 文件时。
我在 IB 中正确链接了 UIWebView,并在父 VC 上运行以下代码,告诉容器 View 与 WebView 加载 PDF 文件。
func loadThePDF () {
if let pdf = Bundle.main.url(forResource: "Clothing", withExtension: "pdf", subdirectory: nil, localization: nil) {
let req = NSURLRequest(url: pdf)
catalogWebView.loadRequest(req as URLRequest)
}
}
这里奇怪的是,如果我将 PDF 加载代码放入 ViewDidLoad 中,它就可以正常工作。
但是,尝试告诉它在该范围之外加载 PDF 会导致此错误,只能通过放置 ? 来解决此错误。在catalogWebView上?但随后 PDF 就无法加载...
最佳答案
我通过更改链接到子/容器 View Controller 的方式解决了这个问题。由于某种原因,这已经通过使用以下方法解决了问题:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "pdfView" {
pdfVC = segue.destination as? PDFViewController
}
}
不完全确定原因,但我猜测这与当我告诉 ViewController 在容器 View 的 Web View 中加载新的 PDF 时 ViewController 的链接方式有关。
关于swift - 仅当 loadRequest 位于 viewDidLoad 之外时,UIWebView 才会出现 Nil 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55840608/