Swiftで外部クラスからWKWebViewを操作したい
Swiftの各タブ内にWKWebViewを生成するWebViewアプリを開発しています。
UINavigationControllerとUITabBarControllerを併用していて、上部に共通のヘッダーがあります。
各タブにはそれぞれWKWebViewでWebページを設置していて、Webページ内で違うページに遷移すると上部のヘッダーに戻るボタンを追加します。(アクティブタブが変わればそのWebViewに戻るボタンが必要かどうか判断しています)
Tab毎のViewController内でWebViewが戻るメソッドを用意しています。
class Tab1ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate {
var webView: WKWebView!
....
public func webViewGoBack() {
webView.goBack()
}
}
UITabBarControllerのクラス内で戻るボタンが押された時のActionを設定しています。
class TabsViewController: UITabBarController {
@IBAction func webViewGoBackBtn(_ sender: UIBarButtonItem) {
Tab1ViewController().webViewGoBack()
}
....
アプリはビルドできるのですが、実際にヘッダーのボタンを押してwebViewGoBackを実行するとXcodeで以下のエラーが表示されてアプリがクラッシュします。
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
Tab1ViewController内でwebViewGoBack()を実行した時は正常に動きました。
修正方法または解決方法を教えて頂けると助かります。