Je n'arrive pas à trouver un bon exemple sur la façon d'utiliser transitionFromViewController:toViewController:duration:options:animations:completion:
correctement.
Est-ce correct? (en supposant que je veux changer de VC avec l'autre)
// Assume fromVC and toVC view controllers are defined and fromVC is already added as a child view controller
[self addChildViewController:toVC];
[self transitionFromViewController:fromVC toViewController:toVC duration:0.3 options:UIViewAnimationOptionTransitionCrossDissolve animations:NULL completion:^(BOOL finished) {
[fromVC willMoveToParentViewController:nil];
[fromVC removeFromParentViewController];
[toVC didMoveToParentViewController:self];
}];
La documentation n'est pas claire au sujet de quand faire appel à ce que:
Le addChildViewController: les appels de méthode à l' willMoveToParentViewController: méthode de la vue contrôleur ajouté comme un enfant avant de l'ajouter, mais il n'appelle pas la didMoveToParentViewController: méthode. Le conteneur de-vue-contrôleur la classe doit appeler le didMoveToParentViewController: de la vue enfant contrôleur après le passage à la nouvelle de l'enfant est complet ou, si il n'y a pas de transition, immédiatement après l'appel de la addChildViewController: méthode.
De même, il est de la responsabilité du conteneur de-vue-contrôleur pour appeler la willMoveToParentViewController: avant l'appel de la méthode removeFromParentViewController: méthode. L' removeFromParentViewController: les appels de méthode à l' didMoveToParentViewController: méthode de l'enfant-vue-contrôleur.
Une autre chose est, comment utilisez-vous les animations bloc dans ce cas? Avis dans le code ci-dessus, je viens de mettre NULL
. (Je suis familier avec bloc en soi, je ne suis pas sûr de quoi mettre exactement dans celui-ci)