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?

questionAnswers(3)

yourAnswerToTheQuestion