2009-06-01 5 views
0

J'ai mis une vue sur mon contrôleur de navigation qui contient un UIWebView et cela va charger une URL.UIWebView n'a pas tout à fait terminé le chargement

Quand il démarre je lance le networkActivityIndicatorVisible et quand il se termine je le cache.

Si un utilisateur décide qu'il ne veut pas terminer le chargement de la page Web et renvoie sur le contrôleur de nav, l'indicateur de réseau continue. Comment est-ce que je peux me débarrasser de ceci parce qu'il semble n'y avoir aucune méthode de délégué pour ceci et aucun de viewdidUnload n'est déclenché ...

Répondre

0

Que diriez-vous de rendre l'indicateur d'activité invisible dans le viewWillAppear: (BOOL) animateur précédent?

+0

Merci , J'étais un muppet alors et a manqué le: (BOOL) animé et je le prends qui est requis .... –

2

Dans la viewWillDisappear: méthode de votre ViewController de UIWebView, faites ce

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

espoir qui aide

+0

Comme ci-dessous, j'étais un muppet alors et a manqué le: (BOOL) animée et je suppose que c'est nécessaire .... J'ai ajouté les deux bits de code. –

2

Je l'ai fait une solution simple de comptage de référence pour les processus de chargement:

-(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

Merci un million de fois, sauvé ma journée. – Emil