viewWillAppear chamado duas vezes com animação de envio personalizado usando transitionFromView
Eu estou olhando para executar um segue para substituir o controlador de visão de raiz da janela por outro controlador de exibição usando uma animação enrolar. A ideia é que eu tenho umSplashViewController
sendo exibido por alguns segundos antes da transição (performSegueWithIdentifier:
) para o próximo,LoginViewController
, usando a animação de enrolar.
Eu criei um costumeUIStoryboardSegue
classe chamadaAnimatedSegue
. Aqui está o código do substituídoperform
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];
}];
}
Ele funciona bem, exceto que no iOS 6 (aparentemente não no iOS 5) oviewWillAppear:
método está sendo chamado duas vezes nodestination
ver controlador. Parece que é chamado pela primeira vez durante a transição e pela segunda vez quando executa[window setRootViewController:destination];
Note que não quero usar um controlador de navegação. oSplashViewController
é desalocada (como esperado) assim que a transição terminar.
Alguma idéia de como consertar meu problema?