Animación personalizada Segue

Estoy tratando de usar un segmento personalizado para realizar un tipo de animación de zoom. Cuando se ejecuta la transición, el sourceViewController se pone en negro y, a continuación, se produce el zoom.

También se intentó establecer el pushViewController: en el bloque de finalización, pero la transición no se ejecuta en absoluto.

- (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){
                     }];

}

Que estoy haciendo mal ?

Respuestas a la pregunta(1)

Su respuesta a la pregunta