我使用Swift4.0和Xcode9.0。我尝试使用显示一个网站WKWebView
。直到昨天才没问题,但是今天发生了错误。
import UIKit
import WebKit
class WKWebViewViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {
@IBOutlet weak var webView: WKWebView!
var startUrl = "https://www.apple.com"
var requestUrl: String?
override func loadView() {
webView.uiDelegate = self
webView.navigationDelegate = self
}
override func viewDidLoad() {
super.viewDidLoad()
webView.allowsBackForwardNavigationGestures = true
if let url = URL(string: startUrl) {
let request = URLRequest(url: url)
webView.load(request)
}
}
}
错误发生在webView.uiDelegate = self
。这是错误日志:
fatal error: unexpectedly found nil while unwrapping an Optional value
为了进行调试,我print("webView:\(webView)")
在下添加loadView()
,发现webView本身是nil
。
我尝试添加?
所有内容webView
,但应用程序仅出现黑屏。为什么WkWebView
变成零?是我的代码之外的一些必需设置吗?
你必须打电话super.loadView()
时您可以覆盖loadView
这个样子。这就是WKWebView为零的原因。
文档建议loadView
在使用情节提要/ xib时完全不要覆盖
如果使用Interface Builder创建视图并初始化视图控制器,则不得重写此方法。
您应该将这两行代码作为第二步移动 viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
webView.uiDelegate = self
webView.navigationDelegate = self
....
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句