У меня есть приложение с UITabBarController, на каждой вкладке есть UINavigationController, «прикрепленный» к нему. Теперь давайте предположим, что rootViewControllers (ofControllers) на вкладках 1,2 и 4 поддерживают только ориентацию портрета и имеют такую реализацию «shouldAutorotateToInterfaceOrientation», которая возвращает только YES, когда его попросят повернуть на портрет. Однако вкладка 3 имеет некоторые viewControllers в своем навигационном контроллере, которые поддерживают ландшафтную ориентацию.Autorotate игнорируется при смене вкладок
Когда я нахожусь на вкладке 3 сейчас и перехожу к одному из viewControllers, которые поддерживают ландшафт, я могу превратить устройство и интерфейс в ландшафт. Тем не менее, если я ударил вкладку 1,2 или 4 с интерфейсом в ландшафтном режиме, интерфейс не будет изменен обратно на портрет, но останется в пейзаже, несмотря на то, что отображаемые viewControllers явно поддерживают только портрет.
Я не уверен, что мне не хватает или это намеренное поведение, я хотел бы, чтобы ориентация интерфейса переключалась обратно на портрет, как только я переключаюсь на портрет только viewController через tabBarController. Вся иерархия построена программно.
Спасибо!
Хм я просто сделал некоторые испытания и мой метод shouldAutorotateToInterfaceOrientation в категории не вызывается при переключении вкладок без поворота устройства (что имеет смысл). Вы его ручно называете? – Robin
Нет, я сам не называл это. – Pacu