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
освобождается (как и ожидалось) после завершения перехода.
Есть идеи, как решить мою проблему?