viewWillAppear вызывается дважды с пользовательской передачей анимации с использованием transitionFromView

Я ищу, чтобы выполнить замену корневого контроллера представления окна другим контроллером представления, используя анимацию свертывания. Идея в том, что у меня естьSplashViewController отображается за пару секунд до перехода (performSegueWithIdentifier:) к следующему,LoginViewController, используя скручиваемую анимацию.

Я создал кастомUIStoryboardSegue класс называетсяAnimatedSegue, Вот код переопределенногоperform метод:

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

Он работает нормально, за исключением того, что в iOS 6 (видимо, не в iOS 5)viewWillAppear: метод вызывается дважды наdestination просмотр контроллера. Кажется, что он вызывается первый раз во время перехода и второй раз, когда он выполняется[window setRootViewController:destination];

Обратите внимание, что я не хочу использовать контроллер навигации.SplashViewController освобождается (как и ожидалось) после завершения перехода.

Есть идеи, как решить мою проблему?

Ответы на вопрос(3)

Ваш ответ на вопрос