Animação Segue Personalizada

Eu estou tentando usar um acompanhamento personalizado para executar um tipo de animação de zoom. Quando a transição é executada, o sourceViewController fica preto, então o zoom ocorre.

Tentei também para definir o pushViewController: no bloco de conclusão, mas a transição não é executada a todos.

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

}

O que estou fazendo errado ?

questionAnswers(1)

yourAnswerToTheQuestion