Animation personnalisée de Segue

Je suis en train d'utiliser un segue à effectuer une sorte de zoom de l'animation.
Lorsque la transition est exécutée, la sourceViewController devient noir, puis le zoom se produit.

Essayé aussi de définir la pushViewController: dans l'achèvement bloc, mais la transition n'est pas exécutée du tout.

- (void)perform {

    UIViewController *sourceViewController = (UIViewController *) self.sourceViewController;
    UIViewController *destinationViewController = (UIViewController *) self.destinationViewController;

    [destinationViewController.view setTransform:CGAffineTransformMakeScale(0.5,0.5)];
    [destinationViewController.view setAlpha:0.0];

    [UIView animateWithDuration:0.5
                          delay:0.0
                        options:UIViewAnimationCurveEaseOut 
                     animations:^{
                         [destinationViewController.view setTransform:CGAffineTransformMakeScale(1.0,1.0)];
                         [destinationViewController.view setAlpha:1.0];
                         [sourceViewController.navigationController pushViewController:destinationViewController animated:NO];
                     } 
                     completion:^(BOOL finished){
                     }];

}

Ce que je fais de mal ?

source d'informationauteur Nimrod7