viewWillAppear se llama dos veces con una animación personalizada de segue que usa transitionFromView

Estoy buscando realizar un segmento para reemplazar el controlador de vista raíz de la ventana por otro controlador de vista usando una animación de curl up. La idea es que tengo unSplashViewController se muestra durante un par de segundos antes de la transición (performSegueWithIdentifier:) al siguiente,LoginViewController, utilizando la animación de curl up.

He creado una costumbreUIStoryboardSegue clase llamadaAnimatedSegue. Aquí está el código de lo anulado.perform método:

- (void)perform
{
  UIViewController *source = self.sourceViewController;
  UIViewController *destination = self.destinationViewController;

  UIWindow *window = source.view.window;

  [UIView transitionFromView:source.view
                      toView:destination.view
                    duration:1.0
                     options:UIViewAnimationOptionTransitionCurlUp
                  completion:^(BOOL finished) {
                    [window setRootViewController:destination];
                  }];
}

Funciona bien, excepto que en iOS 6 (aparentemente no en iOS 5) elviewWillAppear: Método se llama dos veces en eldestination Controlador de vista. Parece que se llama una primera vez durante la transición y la segunda vez cuando se ejecuta[window setRootViewController:destination];

Tenga en cuenta que no quiero usar un controlador de navegación. losSplashViewController se desasigna (como se espera) una vez que finaliza la transición.

¿Alguna idea sobre cómo solucionar mi problema?

Respuestas a la pregunta(3)

Su respuesta a la pregunta