popOverビューからViewControllerへのユーザー操作を渡してWKWebViewとやりとりしようとしています。WKWebView Swiftに値を渡す
現在ポップオーバーは、通話 ViewController().callViewControllerMethod()
を選択した場合は、この方法が正しく動作してcallViewControllerMethod()
を呼び出すないボタンがあります。
callViewControllerMethod()
は、WKWebViewでJavascriptを評価するコードです。コードが実行されると、それはevaluateJavascript
コードを打つと"fatal error: unexpectedly found nil while unwrapping an Optional value"
をスローしかし、私は、なぜ何のアイデアもない - evaluateJavascript
関数内でJavascriptをViewController
から直接呼び出す場合は正常に動作しますが、直接呼び出さ場合にのみを。
あなたがエラーを取得する理由
ポップオーバーコード
class BackgroundViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func button1(_ sender: AnyObject!) {
print("button 1 selected")
ViewController().callViewControllerMethod()
}
}
のViewControllerコード
class ViewController: UIViewController, WKNavigationDelegate, UISearchBarDelegate {
func callViewControllerMethod() {
print("got to the method")
webView.evaluateJavaScript("document.body.style.background = \"white\";") { (result, error) in
if error != nil {
print(result as Any)
}
else {
print("background code completed")
}
}
}
}
問題の発生場所を正確に示すコードサンプルを提供してください。 – paulvs
"しかし、私は考えていません" - オプション値をアンラッピングしている間にコンパイラが予期せずnilを見つけました。/ – Danoram
私はいくつかのコードを追加しても助けになります; – kb12abz