2009-06-01 6 views
0

Ich habe eine Ansicht auf meinen Nav-Controller geschoben, der ein UIWebView enthält, und das wird eine URL laden.UIWebView hat nicht ganz fertig geladen

Wenn es startet, starte ich den networkActivityIndicatorVisible und wenn es fertig ist, verstecke ich es.

Wenn ein Benutzer entscheidet, dass er nicht mit dem Laden der Webseite fertig ist und auf den navcontroller zurückgreift, wird der Netzwerkindikator fortgesetzt. Wie werde ich das los, da es keine Delegate-Methode dafür zu geben scheint und keiner der viewdidUnload getriggert wird.

Antwort

0

Wie wäre es, den Aktivitätsindikator unsichtbar zu machen in der vorherigen viewWillAppear: (BOOL) animiert?

+0

Dank , Ich war damals ein Muppet und verpasste das: (BOOL) animierte und ich nehme es, was erforderlich ist .... –

2

Im viewWillDisappear: Methode Ihrer UIWebView des Viewcontroller, tun dies

if([yourWebView isLoading]){ 
    //hide your network activity indicator 
    [yourWebView stopLoading]; 
} 

Hoffnung, die

+0

Wie unten wurde ich ein Muppet dann und verpasste die: (BOOL) animiert und ich nehme an, das ist erforderlich .... Ich habe beide Bits hinzugefügt. –

2

hilft habe ich eine einfache Lösung von Referenzzählung für die Ladevorgänge:

-(void)webViewDidStartLoad:(UIWebView *)webView { 

    if (_loadRef == 0) { 
     [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; 
    } 

    _loadRef++; 
} 

-(void)webViewDidFinishLoad:(UIWebView *)webView { 

    _loadRef--; 

    if (_loadRef == 0) { 
     [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; 
    } 
} 
+0

Vielen Dank, gerettet meinen Tag. – Emil