La Transition de vue des contrôleurs de gauche à droite
Je ne suis PAS en utilisant la manette de navigation, et j'utilise les storyboards.
J'ai à faire une transition à partir de 1-vue-contrôleur à d'autres, dont je suis l'aide de segue.
Maintenant je l'ai mis la séquence de style à la Coutume, et dans la classe correspondante, je remplace la perform
méthode.
-(void)perform
{
UIViewController *sourceViewController = [self sourceViewController];
UIViewController *destinationViewController = [self destinationViewController];
CATransition *transition = [CATransition animation];
transition.duration = 0.25;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
[sourceViewController.view.layer addAnimation:transition forKey:kCATransition];animated:NO];
[sourceViewController presentViewController:destinationViewController animated:YES completion:nil];
}
Mais il y a aussi une propriété de la destination-vue-contrôleur modalTransitionStyle
.
Donc, pour l'instant, la source de CR va de gauche à droite comme si elle est le fait d'être poussé, mais je veux montrer qu'il est poussé par la destination-vue-contrôleur. Au lieu de cela, la destination VC ne une "Couvrir" Vertical " par défaut, et il y a seulement quatre options disponibles pour le modalTransitionStyle
de la propriété, dont aucun n'est de travailler pour moi.
Je pense que pour le faire fonctionner, ce film d'animation devrait être ajouté à certains superview couche, un superview à partir de laquelle les deux contrôleurs ont été présentés. Mais il n'y a pas une telle superview..
OriginalL'auteur neeraj | 2013-03-26
Vous devez vous connecter pour publier un commentaire.
Généralement de vous donner un storyboardId à la destinationController et de l'appeler comme ça de la sourceViewController:
En option, vous pouvez le faire manuellement comme ceci:
** MODIFIER **
Fonction Inverse (similaire au bouton de retour de la manette de navigation):
viewWillAppear
et d'autres de telles méthodes? Et je voudrais être en mesure de "rejeter" la vue ou serais-je faire quelque chose de similaire à supprimer la vue?Ou pouvez-vous me dire quelques étapes à l'aide de laquelle je peux convertir mon appli pour utiliser une manette de navigation? J'ai VC1, ce qui peut présenter des VC2 ou VC3. VC2 et VC3 ont à l'égard les uns des autres.
la 2e méthode serait d'ajouter le second point de vue sur le côté droit, faites glisser vers la droite jusqu'à ce qu'à ce point de vue est visible, puis rejeter la première vue. Toutes les méthodes correspondantes, telles que
viewDidLoad
ouviewWillAppear
sera appelé comme d'habitude. Si vous licencier, signifie quelque chose comme le comportement généré pardismissModalViewControllerAnimated:
, vous pouvez le faire en appelant une fonction qui fait la même chose mais dans un ordre inversé (fixation de la nouvelle vue à la gauche et faites glisser vers la gauche).J'ai ajouté une modification de la réponse à émuler les glisser en arrière
Merci beaucoup simpleBob. Mais je pense que cela pourrait nécessiter des changements importants dans l'application!
OriginalL'auteur Daniel
Tous les ViewControllers dans mon application hériter de
MyViewController
qui, en plus de certains autres comportements par défaut, cette propriété:Et ce code:
Puis, dans la ViewControllers où je veux slide-in, j'ai:
Appeler une nouvelle ViewController est juste comme d'habitude:
OriginalL'auteur Olie