Il pourrait être instructif (si vous n'avez pas passé loin encore) à NSLog une trace de la charge commence et se termine.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"Loading: %@", [request URL]);
return YES;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSLog(@"didFinish: %@; stillLoading: %@", [[webView request]URL],
(webView.loading?@"YES":@"NO"));
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
NSLog(@"didFail: %@; stillLoading: %@", [[webView request]URL],
(webView.loading?@"YES":@"NO"));
}
Je viens de regarder les appels vers tous les trois dans un de mes projets qui charge une page d'aide de mon bundle et contient des ressources (css externe, YUI!, les images). La seule demande qui vient à travers est le chargement initial de la page, shouldStartLoadWithRequest
n'est pas appelée pour toutes les dépendances. Il est curieux de savoir pourquoi votre didFinishLoad est appelée plusieurs fois.
Peut-être ce que vous voyez est due à des redirections, ou comme mentionné, les appels ajax dans une page chargée. Mais vous avez au moins doit être en mesure de la balance des appels d' shouldStartLoad
et les deux autres déléguer ses fonctions et être en mesure de déterminer quand le chargement est terminé.