У меня была такая же проблема. Когда я нажал назад, чтобы перейти к первому виду, я увидел вертикальную анимацию вместо обычной горизонтальной.
Я нашел ответ на основе образца кода Apple NavBar. Я отредактировал пример кода, добавив «shouldAutorotateToInterfaceOrientation» ко всем контроллерам представления, и заставил его вернуть YES.
Когда я запустил его, я заметил, что при нажатии «Назад» была использована правильная анимация.
FIX:
Похоже, вам нужно использовать свой собственный подклассный UIViewController в контроллере навигации и добавить shouldAutorotateToInterfaceOrientation. Предположительно, стандартный UIViewController не возвращает правильную ориентацию, поэтому используется неправильная анимация.
ФОН:
Я проверил все различия между моим кодом и кодом Apple и обнаружил, что мой контроллер навигации является подклассом UINavigationController, где я выполняю всю работу. По умолчанию IB добавил в него UIViewController, и я оставил его в покое. Я заметил, что образец кода NavBar имеет свой собственный набор классов (MainViewController). Поэтому я заставил Xcode создать новый подкласс UIViewController без xib, а затем настроил его в опции Class на панели Identity в IB.
Надеюсь, это имеет смысл и поможет!