viewWillAppear wywołał dwukrotnie z niestandardową animacją segue przy użyciu przejściaFromView
Chcę wykonać segment, aby zastąpić kontroler widoku głównego okna innym kontrolerem widoku, używając animacji zwijania. Chodzi o to, że mamSplashViewController
wyświetlane przez kilka sekund przed przejściem (performSegueWithIdentifier:
) do następnego,LoginViewController
, używając animacji zwijania.
Stworzyłem niestandardowyUIStoryboardSegue
klasa o nazwieAnimatedSegue
. Oto kod nadpisanegoperform
metoda:
- (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];
}];
}
Działa dobrze, z wyjątkiem tego, że w iOS 6 (podobno nie w iOS 5)viewWillAppear:
metoda jest wywoływana dwukrotnie nadestination
kontroler widoku. Wydaje się, że jest wywoływany po raz pierwszy podczas przejścia i drugi raz, gdy jest wykonywany[window setRootViewController:destination];
Zauważ, że nie chcę używać kontrolera nawigacji. TheSplashViewController
zostaje zwolniony (zgodnie z oczekiwaniami) po zakończeniu przejścia.
Jakieś pomysły na rozwiązanie mojego problemu?