Я пытаюсь передать взаимодействие пользователей с представления popOver на ViewController, чтобы затем взаимодействовать с WKWebView.Передача значений WKWebView Swift
В настоящее время поповер имеет кнопки, которые при выборе вызовов ViewController().callViewControllerMethod()
этот метод работает корректно и не называют callViewControllerMethod()
.
Внутри callViewControllerMethod()
есть некоторый код для оценкиJavascript на WKWebView. Когда код побежал он попадает в evaluateJavascript
код и бросает "fatal error: unexpectedly found nil while unwrapping an Optional value"
Но я понятия не имею, почему - на JavaScript, который находится в пределах функции evaluateJavascript
работает корректно, если вызывается непосредственно из 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
«Но я понятия не имею, почему» - компилятор неожиданно нашел нуль, разворачивая необязательное значение. Это лучший ответ, который вы получите без предоставления какого-либо кода из контекста:/ – Danoram
извините, помогите, если я добавлю код;) – kb12abz