Могу ли я переходить между контроллерами представления без анимации вращения?

У меня два контроллера:

  • MainController, который поддерживает только портрет
  • PhotoController, который поддерживает все ориентации.

Они содержатся в навигационном контроллере.

Этот сценарий не работает хорошо:

  1. Устройство физически находится в ландшафтном режиме, с MainController на экране, поэтому пользовательский интерфейс находится в портретном режиме.
  2. Мы помещаем PhotoController в стек навигации.
  3. Пользовательский интерфейс вращается с анимацией вращения.

Технически он работает так, как задумано. Но анимация вращения раздражает с точки зрения UX.

Я хочу, чтобы переход между контроллерами представления происходил без анимации. Я хочу, чтобы система делала вид, что предыдущий контроллер (MainController) уже был в нужной ориентации. Это возможно?

Фон

MainController имеет собственный механизм ориентации, не полагаясь на механизм UIViewController. Таким образом, пользователь думает, что пользовательский интерфейс находится в ландшафтном режиме, если устройство физически находится в ландшафтном режиме, хотя UIKit считает, что он находится в портретном режиме. При переключении контроллеров анимация вращения разрушает созданную мной иллюзию, поэтому мне нужно ее отключить.

Это на iPhone, а не на iPad.

Этот вопрос не является обманом настраиваемой анимации перехода навигационного контроллера, потому что я говорю об анимации ВРАЩЕНИЯ между портретом и ландшафтом, а не об анимации ПЕРЕХОДА между одним контроллером представления и другим.


person Kartick Vaddadi    schedule 12.03.2017    source источник
comment
Возможный дубликат настраиваемой анимации перехода навигационного контроллера   -  person SergGr    schedule 12.03.2017
comment
Вовсе нет — я отредактировал вопрос, чтобы сказать, почему. См. последний абзац.   -  person Kartick Vaddadi    schedule 12.03.2017