Cela n'a commencé que sur iOS6, mais si vous démarrez un nouveau projet à l'aide du modèle de contrôleur de la page View. Puis dans ajoutez les lignes au bas de la méthode. P> Vous aurez besoin d'attribuer la vue de la vue afin qu'elle soit conforme à UIGESTRERECOnImizerDelegate et implémente la méthode P> retourne nul. p> L'application se bloque alors. P> Cela n'a pas eu lieu avec iOS5. Je dois attribuer le geste-geseRecogner Délégué à mon point de vue car je ne souhaite pas toujours que la pageViewController gère les événements tactiles. P> a d'autre que cela a vécu cela ou signalez-vous si je fais quelque chose de mal? P> Merci beaucoup
Stewart. P> p>-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch (UITouch *)touch
{
return YES;
}
4 Réponses :
a finalement trouvé une solution à mon problème qui m'a amené au chagrin, j'espère donc que cela puisse aider quelqu'un d'autre.
Le problème est si vous définissez le délégué de pageViewControlers sur votre ViewController P>
gestureRecognizer:shouldReceiveTouch:
Je crois que j'ai trouvé une solution beaucoup moins compliquée que de refactoriser tout code de pageViewController existant, comme mentionné Norema, ou sans gâcher avec le renvoi de sélecteur, comme mentionné Ici , bien que je n'aurais jamais trouvé cela sans ces deux solutions comme référence.
Ceci devrait facilement tomber dans n'importe quel projet UIPAGEVIEWCONTROLLER avec uniquement des ajustements mineurs. < / p>
Pour mettre en œuvre, vous quittez votre code tel quel; Toute la logique existante doit rester la même que celle-ci n'affecte que le comportement des délégués UIGESTurerImizer. Remplacer la méthode de la déléguée gestuelle - (BOOL) gesturerecognizershouldbegin: avec quelque chose comme ce qui suit: p>
Remarque: J'utilise le code d'application basé sur la page d'Apple comme point de départ, alors faites-vous référence si les termes _ModelController code> et
_PageViewController code> cause toute confusion. p>
@jankins ... Qu'est-ce qu'un contrôleur de modèle et _ pageViewController se réfère?
Voir le commentaire dans mon message: "Remarque: J'utilise le code d'application basé sur la page d'Apple comme point de départ, alors faites-vous référence si les termes _ModelController et _PageViewController provoquent toute confusion."
Parfois, la vélocité est <0 mais pageViewController toujours à la recherche de page précédente au lieu de la page suivante et causer une erreur.
Merci fonctionnent bien, branchez et jouez! Faites attention si vous avez désactivé deux pages sur le paysage, nous devons modifier FinalVCindexSubtractor = 2; à 1
J'ai eu le même problème avec UIPAGEVIEWCONTROLLER qui s'est écrasé avec iOS6 avec la même erreur lors de la navigation au-delà des limites.
Aucune des solutions ci-dessus n'a fonctionné pour moi, mais j'ai finalement trouvé que déplacer la ligne suivante à partir de ViewDidLoad Code> à
viewDidAppear code> corrigé complètement. p>
Tout en enquêtant sur le problème avec PAN geste dans UIPAGEVIEWCONTROLLER Sous IOS 6, j'ai remarqué qu'il pouvait invoquer plusieurs fois les méthodes de contrôleur d'affichage plusieurs fois dans un geste. C'est mauvais dans mon cas particulier, car je dois attendre que l'animation soit terminée pour chaque page, tournez de pouvoir accéder à la page suivante / précédente.
Ainsi, nos méthodes ont une telle structure: même pour et après la finition d'animation, cette méthode d'uipageviewcontrollerdelegate est invoquée: p> comme une pieuse a été invoquée plusieurs fois, alors Pour résoudre ce problème, nous avons dû gérer la pieuse en quelque sorte. Utilisation de UIVIEW en ajoutant la méthode comme: p> après que ces méthodes ressemblent à: p> ceci aidé à résoudre un problème de boucle avec l'animationinprogress drapeau. P> J'espère que cela sera utile pour quelqu'un. p> p> ViewControllerafterviewController code> " p>
ViewControllerafterviewController code> et une autre méthode a été invoquée plusieurs fois en raison de cela, et malheureusement
drefinishanimant Code> La méthode n'a pas été invoquée dans ce cas, ce qui conduit à
AnimationinProGRESSE CODE> SET TO
Oui CODE> Toujours et que l'utilisateur n'a pas été capable de naviguer dans les pages du tout. Remarque: Cela ne se produit que dans iOS 6. P>
gesturerecognizershouldbegin: Gesurerecognizer (qui a été ajouté dans iOS 6) n'a pas résolu un problème du tout, définir le contrôleur en tant que délégué de geste conduit à des collisions lorsque NIL est renvoyé d'avant / après des méthodes. Ainsi, nous avons essayé d'ajouter des logiques à ne pas appeler avant / après les méthodes de contrôleur dans les cas où la pangestture est dans
UigesurerecOnzerstatCommé Code> State (qui a été étudiée sur la base de certains tests pour déterminer ce qui est l'état de geste lorsqu'il invoque des méthodes en boucle) . p>
Le journal d'erreur ... Application de terminaison due à une exception non capturée 'NsinvalidargumentException', raison: "Le nombre de contrôleurs de visualisation fournis (0) ne correspond pas au nombre requis (2) pour la transition demandée"
J'ai eu le même problème et j'ai écrit ma solution ici. stackoverflow.com/questions/12565400/...
J'ai posté une réponse à ce même problème ici: Stackoverflow.com/a/12573631/1655630
Consultez ma réponse ci-dessous, cela évite le tournage infini de la même page