popOver 뷰에서 ViewController로 사용자 상호 작용을 전달하려고 시도하고 WKWebView와 상호 작용하려고합니다. 이 방법이 제대로 작동 통화 ViewController().callViewControllerMethod()
을 선택 callViewControllerMethod()
를 호출 않을 때 WKWebView Swift에 값 전달
callViewControllerMethod()
안에는 WKWebView에서 자바 스크립트를 평가할 수있는 몇 가지 코드가 있습니다. 코드가 실행되면 그것은 evaluateJavascript
코드를 안타 "fatal error: unexpectedly found nil while unwrapping an Optional value"
발생하지만 내가 왜 아무 생각이 없다 - ViewController
에서 직접 호출하면 evaluateJavascript
기능이 제대로 작동에서,하지만 직접 호출하는 경우입니다 자바 스크립트.
아무도 아이디어가 없습니까?
는팝 오버 코드
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 코드이 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