仅当 loadRequest 在 vi​​ewDidLoad 之外时,UIWebView 才会出现 Nil 错误

Nil Error for UIWebView ONLY when loadRequest outside viewDidLoad

我收到以下错误

"Unexpectedly found nil while unwrapping an Optional value"

当我尝试在通过容器视图呈现的 Web 视图中加载 PDF 文件时。

我在 IB 中正确链接了 UIWebView,运行 父级上的以下代码 VC 告诉带有 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 之外的 PDF 会导致此错误,只能通过放置一个 ?在 catalogWebView 上?但是 PDF 就是无法加载...

我通过将 link 更改为 Child/Container 视图控制器的方式解决了这个问题。出于某种原因,这已经解决了这个问题:

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "pdfView" {
            pdfVC = segue.destination as? PDFViewController
        }
    }

不完全确定为什么,但我猜这与 ViewController link 在我告诉它在容器的 Web 视图中加载新 PDF 时如何启动有关看法。