2011-01-20 6 views
0

J'ai un UIWebView configuré dans Interface Builder avec le délégué défini sur le propriétaire du fichier. J'ai webViewShouldStartLoad, webViewDidFinishLoad, webViewDidStartLoad, et webViewDidFailLoadWithError mis en place avec NSLogs à l'intérieur pour voir s'ils fonctionnent. webViewShouldStartLoad fonctionne parfaitement, mais les trois autres ne fonctionnent que sur la charge initiale. si je clique sur un lien pour aller à une autre page, les trois autres ne fonctionnent pas. Toutes les pages Web se chargent bien, mais je ne peux pas obtenir n'importe quelles fonctions de délégué de webview autres que webViewShouldStartLoad à workAnyone avoir des idées pourquoi ceci pourrait être?Problèmes UIWebViewDelegate

Répondre

0

Le propriétaire du fichier est-il le contrôleur de vue responsable de l'UIWebView?

Assurez-vous que c'est le cas. Deuxièmement, je préfère définir le délégué dans le code. Je supprime tout mystère pour les développeurs novices. Interface Builder peut parfois ne pas être clair, en particulier si vous ne savez pas à quoi ressemblent les liens dans le code. N'oubliez pas qu'Interface Builder vous évite d'écrire du code. tout ce que vous faites dans IB peut être fait en code.

Essayez ceci dans le contrôleur View, habituellement dans viewDidLoad:

self.webView.delegate = self; 

(Vous ne devez pas appeler « moi », je voudrais, pour des raisons en dehors de ce fil)

Assurez-vous que View Controller qui possède UIWebView implémente UIWebViewDelegate dans le fichier d'en-tête.

MISE À JOUR En outre, ce à partir du site dev:

« Important:. Vous ne devriez pas incorporer des objets UIWebView ou UITableView dans les objets UIScrollView Si vous le faites, un comportement inattendu peut entraîner parce que les événements tactiles pour les deux objets peuvent être mélangé et mal géré. "

Avez-vous fait cela?

+0

Oui, le propriétaire du fichier est le contrôleur View responsable de l'UIWebView. J'ai également essayé de définir le délégué dans le code, et le contrôleur de vue implémente définitivement le protocole UIWebViewDelegate. La chose étrange est que webViewShouldStartLoad fonctionne très bien. Si c'était un problème avec la définition du délégué, cela ne devrait pas fonctionner, non? – Josh

+0

Avez-vous plusieurs WebViews? Mettez-vous le délégué à zéro au bon endroit? Avez-vous sous-classé UIWebView? À part ça, je ne peux pas vous aider à moins de poster un exemple de code. Je peux jeter un coup d'oeil au dossier de classe si vous vous sentez à l'aise de me l'envoyer. –

+0

J'ai plusieurs WebViews, mais ils sont dans différents contrôleurs de vue. Que voulez-vous dire de mettre le délégué à zéro au bon endroit? Pourquoi et où devrais-je mettre le délégué à zéro? – Josh