2016-03-30 10 views
13

Ich möchte HTML-Seiten mit WkWebView laden und ich möchte die Seite direkt nach dem Laden anzeigen. Solange es geladen wird, möchte ich einen Aktivitätsindikator in einer leeren Ansicht anzeigen. Ich erstelle zwei Ansicht eine loadingView und eine wkWebView. Während die Seite geladen wird, füge ich VC als Unteransicht loadView hinzu und nachdem ich loadingView entfernen und wkWebView hinzufügen möchte. Hier ist mein Code:Wie überprüft man, ob WkWebView in Objective-C geladen wird?

[self addSubview:_loadingView]; 
    _wkWebView = [[WKWebView alloc] initWithFrame:self.frame]; 
    _wkWebView.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.height); 

    //Send a request to wkUrlconnection 
    NSURL *wkUrl = [NSURL URLWithString:self.wkUrlString]; 
    NSURLRequest *wkRequest = [NSURLRequest requestWithURL:wkUrl]; 

    //Here I want to check if it's loaded and then remove loadingView and add wkWebView 
    [_wkWebView loadRequest:wkRequest]; 
    [self.loadingView removeFromSuperview]; 
    [self addSubview:_wkWebView]; 

Kann jemand mir zeigen, wie man überprüft, während es lädt und wenn das VC erneuern? Danke für deine Antworten.

+0

Haben Sie das [Delegat] (https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaEncyclopedia/DelegatesandDataSources/DelegatesandDataSources.html) -Muster und wie es mit dem '' verwendet wird navigationDelegate' Eigenschaft auf einem 'WKWebView'? – Mats

+0

Dank Matten. Ich brauche das. – faklyasgy

Antwort

22

Ich denke, die WKNavigationDelegatewebView:didFinishNavigation: Delegierten Rückruf ist, was Sie suchen.

Konfigurieren und präsentieren Sie Ihre Aktivitätsanzeige, wenn Sie zu laden beginnen, und stoppen Sie sie und entfernen Sie sie aus der Ansicht, wenn der Rückruf aufgerufen wird.

+2

Danke. Das war die gute Lösung, aber lass mich dich korrigieren. WkWebView hat kein WKWebViewDelegate. Stattdessen hat es WKNavigationDelegate. – faklyasgy

+0

Danke, bearbeitete ursprüngliche Antwort – Stavash

+0

Eine erweiterte Frage, kann WebView Antwort wie URLSession erhalten, wenn Sie laden? – allenlinli