Changer l'animation de transition
J'ai une appli avec NavigationController
. Comment puis-je changer l'animation style de transition pushViewController
et popToViewController
?
UPD
J'ai créé la catégorie comme dans @lawicko réponse. Mais je suis d'erreur lorsque j'essaie d'appeler la fonction
[self.navigationController pushViewController:lieux withCustomTransition:CustomViewAnimationTransitionPush sous-type:CustomViewAnimationSubtypeFromLeft];
d'erreur est : "l'utilisation de l'identificateur non déclaré 'CustomViewAnimationTransitionPush'"
Où dois-je déclarer cette partie:
typedef enum {
CustomViewAnimationTransitionNone,
CustomViewAnimationTransitionFlipFromLeft,
CustomViewAnimationTransitionFlipFromRight,
CustomViewAnimationTransitionCurlUp,
CustomViewAnimationTransitionCurlDown,
CustomViewAnimationTransitionFadeIn,
CustomViewAnimationTransitionMoveIn,
CustomViewAnimationTransitionPush,
CustomViewAnimationTransitionReveal
} CustomViewAnimationTransition;
Écrire maintenant, je le déclarer dans UINavigationController+Additions.h
UPD 2: Une nouvelle erreur:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CATransition", referenced from:
objc-class-ref in UINavigationController+Additions.o
"_kCATransition", referenced from:
et même des erreurs de foor tous _kCATransitions
c'est ok, mais je veux de l'animation comme dans le bouton de retour.. mais le mettre pour pushViewController
Je ne comprends pas vraiment. Vous souhaitez que l'animation que vous avez lorsque vous cliquez sur le bouton retour (popViewController) à la une lorsque vous poussez la vue (pushViewController)?
oui! je veux de l'animation comme le glissement horizontal. mais avec direction à gauche
OriginalL'auteur Eugene Trapeznikov | 2012-02-28
Vous devez vous connecter pour publier un commentaire.
Découvrez ce
UINavigationController
catégorie que j'ai créé. Il vous permet de pousser et de popping avec à peu près chaque transition possible, et prend également en charge les sous-types pour QuartzCore transitions, ce qui vous permettra de faire exactement ce que vous voulez - pousser la vue à partir de la gauche. De faire comme ceci:Le code est ci-dessous. La première partie, vous devrez mettre dans la partie en-tête:
Cette deuxième partie, vous devez mettre dans le fichier d'implémentation:
Nope, il suffit de coller ce code dans les fichiers de catégorie (.h pour l'interface .m pour mise en œuvre) et assurez-vous qu'ils sont disponibles dans votre projet. Puis importer le fichier d'en-tête où vous souhaitez utiliser la catégorie de méthode. Si vous avez de la difficulté à comprendre comment la catégorie de travaux voir ici.
j'ai créer une catégorie.. mais il y a une erreur. s'il vous plaît regardez upd
J'ai divisé le code en deux, il suffit de coller la première partie dans l'en-tête et le deuxième dans le fichier d'implémentation.
je l'ai fait dans la façon de raconter. peut-être le problème dans certains autres raisons
OriginalL'auteur lawicko
Vous devez ajouter
QuartzCore.framework
à votre cible afin de résoudre_OBJC_CLASS_$_CATransition
erreur.OriginalL'auteur fannheyward
J'ai récemment abordé la création de mon propre transition, voici la bibliothque j'ai fait:
https://github.com/travisjeffery/TRVSNavigationControllerTransition
Et voici mon post de blog parler de la façon de faire votre propre transition.
L'idée de base est assez simple, il suffit de prendre un CALayer instantané de la navigationController (actuel), puis push/pop la vue sans animation, prendre un CALayer instantané de la nouvelle vue, puis ajouter vos propres animations à ces couches, puis supprimer ces couches une fois l'animation terminée.
iOS 7 a une méthode pour faire cela rapidement maintenant...
OriginalL'auteur travisjeffery