Я создал пользовательский TabBarController, который наследуется от UIViewController (НЕ UITabBarController, потому что он не предназначен для создания подклассов).Все работает нормально, кроме поддержки ориентации.
Мой TabBarController установлен как rootViewController в моем UIWindow и содержит внутренний массив UIViewControllers.В моем случае я добавил UINavigationControllers в качестве корня каждой вкладки.
Когда я помещаю новый UIViewController в любой из моих UINavigationController в моем TabBarController, я получаю вызов shouldAutorotateToInterfaceOrientation, все это нормально, здесь я могу установить, какойUIViewController должен поддерживать, какую ориентацию (как описано в документации Apple).
Однако, когда я возвращаюсь назад, нажимая кнопку «Назад» в моем UINavigationBar, я не получаю вызов mustAutorotateToInterfaceOrientation, следовательно, представление, которое мы отображаем, в конечном итоге заканчивается внеправильная ориентация.
Я провел быструю проверку, заменив свой пользовательский TabBarController на UITabBarController, и при нажатии кнопки назад я получаю вызов shouldAutorotateToInterfaceOrientation, поэтому здесь должно быть что-то не так, но я не могу понять, что именно.
Почему я не получаю вызовы shouldAutorotateToInterfaceOrientation?UITabBarController делает что-то, что я пропустил?
Кто-нибудь здесь испытывал такую же проблему?Есть ли у вас какие-либо идеи, которые стоит попробовать, потому что у меня закончились идеи.
РЕДАКТИРОВАТЬ
Эта проблема решается путем добавления каждого UIViewController в TabBarController какдочерний элемент, использующий контроллер представления контейнера iOS5.
Добавьте UIViewController в качестве дочернего элемента с помощью этого метода: addChildViewController. Затем автоматически переопределите ForwardAppearanceAndRotationMethodsToChildViewControllers и верните YES.
Теперь вы должны вызывать yourAbacktateontIntoInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInterInte*