Comment faire disparaître une modale VC avec le fondu de l'animation?

Je suis en utilisant le code suivant dans ma présentation VC à s'estomper dans l'enfant modal VC, et cela fonctionne très bien:

self.infoViewController.view.alpha = 0.0;
[self.navigationController presentModalViewController:self.infoViewController animated:NO];
[UIView animateWithDuration:0.5
             animations:^{self.infoViewController.view.alpha = 1.0;}];

Cependant je n'arrive pas à s'estomper, j'ai essayé quelques petites choses, c'est le dernier que j'ai essayé ne fonctionne pas:

- (IBAction)dismissAction:(id)sender
{
if ([[self parentViewController] respondsToSelector:@selector(dismissModalViewControllerAnimated:)])
{
    [[self parentViewController] dismissModalViewControllerAnimated:YES];
    self.parentViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    self.parentViewController.view.alpha = 0.0;
    [UIView animateWithDuration:0.5
                     animations:^{self.parentViewController.view.alpha  = 1.0;}];
} else 
{
    [[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];
    self.presentedViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    self.presentedViewController.view.alpha = 0.0;
    [UIView animateWithDuration:0.5
                     animations:^{
                         self.presentedViewController.view.alpha  = 1.0;}];
}

}

Le modèle-vue-contrôleur est disparu immédiatement, mais pas sur une période de temps comme c'est lors de son affiche.

Si vous ne souhaitez que ce code fonctionne sur les appareils plus tôt que iOS 5, vous aurez besoin de protéger l'appel à presentedViewController ainsi que dismissModalViewControllerAnimated.
Si vous êtes témoins d'un avis de rejeter l'animation, c'est sûr qu'il sonne comme ce code est arriver exécuté et qu'il se fait rejeté par un autre chemin.

OriginalL'auteur Gruntcakes | 2012-01-21