Я настраиваю приложение, в котором объект WKWebView
создается в одном классе, а затем передается другому классу для обработки, но когда я использую didFinish navigation
во втором классе, он никогда не вызывается.
Я добавил протокол WKNavigationDelegate
и установил navigationDelegate = self
class one: UIViewController {
var webView: WKWebView = WKWebView();
override func viewDidLoad(){
var second = Second()
second.web = webView;
second.test()
}
}
class second: NSObject, WKNavigationDelegate {
var web: WKWebView? = nil;
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("Test")
}
func test(){
self.web!.load(URLRequest(url: URL(string: "https://google.com")!))
}
}
Я никогда не вижу сообщение «Тест».
0
Sam H
30 Май 2019 в 14:12
2 ответа
Лучший ответ
Сделайте его экземпляром var для сохранения объекта, чтобы делегировать его для вызова
var second = Second() /// << here
override func viewDidLoad(){
super.viewDidLoad()
......
}
func test(){
self.web!.navigationDelegate = self
self.web!.load(URLRequest(url: URL(string: "https://google.com")!))
}
0
Sh_Khan
30 Май 2019 в 11:20
import UIKit
import WebKit
class WKWebViewController: UIViewController, WKNavigationDelegate {
@IBOutlet weak var webWK: WKWebView!
@IBOutlet weak var activityIndi: UIActivityIndicatorView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
webWK.navigationDelegate = self
let appStoreURL = URL(string: "https://google.com")
webWK.load(URLRequest(url: appStoreURL!))
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
activityIndi.startAnimating()
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
activityIndi.stopAnimating()
}
}
0
Ben Rockey
30 Май 2019 в 11:30
Похожие вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.