J'ai une application avec une vue de table à la racine dans un contrôleur de navigation, et sur la sélection d'une cellule de tableau, elle affiche un nouveau contrôleur de vue qui contient seulement un UIWebView (avec une barre d'outils et une barre de navigation).scrollsToTop ne fonctionne pas lorsque UIWebView est utilisé avec pushViewController, recherche de solution
En fonction de la présentation de la nouvelle vue Web, la fonctionnalité permettant à l'utilisateur de cliquer sur la barre d'état en haut et de faire défiler la vue Web vers le haut fonctionne ou ne fonctionne pas.
Si j'utilise:
- (void) presentModalViewController: (UIViewController *) modalViewController animé: (BOOL) animé
sur le RootView, le WebView ne défile vers le haut.
Si je change qu'une ligne de code et à la place utiliser:
- (void) pushViewController: (UIViewController *) viewController animé: (BOOL) animé
sur le contrôleur de navigation, puis la fonction scrollsToTop cesse de fonctionner. Mais ce que je veux vraiment utiliser, pour d'autres raisons dans le contexte de l'application, c'est la méthode pushViewController. MAIS, je veux aussi garder le comportement scrollsToTop.
J'ai jusqu'à présent essayé différentes approches, certains ont décrit ici:
-Attempting pour régler la ScrollView interne WebView scrollsToTop propriété
((UIScrollView *)[[webView valueForKey:@"_internal"] valueForKey:@"scroller"]).scrollsToTop = YES;
(Aucun effet perceptible). -Changement de l'ordre de définition des propriétés NavBar ou de ne pas en définir du tout -Ajout d'appels supplémentaires "makeKeyAndOrderFront" à la fenêtre après le nouvel affichage.
Je ne crois pas qu'il existe d'autres vues qui pourraient prétendre à la propriété "scrollsToTop" (et le premier test ci-dessus le prouve dans tous les cas). À moins d'essayer d'intégrer UIWebView dans un UIScrollView, ce qui, à mon avis, sera douloureux, je n'ai plus d'itinéraires à explorer pour résoudre ce problème.
J'espère que quelqu'un d'autre a trouvé un moyen de corriger cela?
Merci pour la réponse muccy! Je vois où vous allez là-bas, peut-être la vue racine avec sa table revendique le scrollsToTop! Avec de grands espoirs j'ai essayé ceci, mais malheureusement aucun effet! :-( Merci beaucoup pour l'idée, et si vous en avez d'autres, n'hésitez pas à les jeter :) – theLastNightTrain
C'est vraiment étrange. Dans une application que je développe j'ai le même scénario (contrôleur de vue de table -> vue web [contrôleur]) et je n'ai aucun problème avec le comportement de la barre d'état ... Si je vais avoir une idée j'ai gagné Hésitez pas à vous suggérer! :) – muccy