Заменить window.rootViewController с анимацией работает частично

Я пытаюсь заменить окно rootViewController анимацией, и он работает только частично.

Я создаю UINavigationController программно –

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"InboxStoryboard" bundle:nil]; UIViewController *innerViewController = [storyBoard instantiateViewControllerWithIdentifier:@"centerView"]; UINavigationController *centerView = [[UINavigationController alloc] initWithRootViewController:innerViewController]; 

Впоследствии я заменяю контроллер корневого окна окна, завернутый в блок анимации –

 [UIView transitionWithView:self.viewController.view.window duration:0.5 options: UIViewAnimationOptionTransitionFlipFromLeft animations:^{ self.viewController.view.window.rootViewController = centerView; } completion:nil]; 

Случается, что анимация происходит, но созданный мной контроллер только частично виден, посмотрите на следующее изображение –

Таким образом, как вы можете видеть во время вращения, представление отображается только частично.

Раньше кто-то сталкивался с подобным поведением?

Итак, после долгого поиска я обнаружил, что проблема была в [UIView transitionWithView:...] Поиск немного больше в stackoverflow, который я нашел. Переключение rootViewController с анимацией

Использование [UIView transitionFromView:..] работает отлично.

Новый код –

 [UIView transitionFromView:self.window.rootViewController.view toView:self.centerViewController.view duration:0.5 options:UIViewAnimationOptionTransitionCurlUp completion:^(BOOL finished) { self.window.rootViewController = self.centerViewController; }]; 

Вы используете автоматическую компоновку? Если это так, попробуйте отключить его. Я столкнулся с несколькими проблемами с автоматической компоновкой и анимацией.

  • Программно переключаться между двумя UIViewControllers
  • Ошибка при отключении контроллера просмотра
  • Как создать экземпляр контроллера просмотра с контроллером tab и nav для глубокой привязки?
  • iPhone - вызов функции с другого контроллера
  • Paginate разбора запросов с использованием регулярного UIViewController
  • передавать данные из выбранной строки для просмотра контроллера
  • Невозможно присвоить значение типа '(String !, Bool, !, NSError!) -> Пустое значение типа UIActivityViewControllerCompletionWithItemsHandler?'
  • scrollsToTop не работает с защитой UIViewController
  • Имеет ли значение, где положить в мой UIViewController?
  • Почему приложение запускается каждый раз, когда я пытаюсь показать два контроллера дочерних представлений, которые являются GLKViewControllers?
  • Отключить контроллер просмотра при нажатии кнопки «Домой»
  • Давайте будем гением компьютера.