Авторотация в iOS6
Я обновляю свое приложение для iOS 6 и у меня возникли проблемы с изменениями в autorotation. Мое приложение имеет кучу контроллеров вида, и все они должны поддерживать только книжную раскладку, кроме 1, которая должна поддерживать все 3 ориентации, кроме перевернутой.
Если я добавляю метод application:supportedInterfaceOrientationsForWindow:
в делегат приложения, нужно ли мне добавлять условия, чтобы проверить, отображаю ли я тот VC, который я хочу иметь возможность вращать?
В документации говорится, что если я реализую supportedInterfaceOrientations
на VC, то он должен переопределите метод делегата приложения, но это не так. У меня есть оператор log в методе на дочернем VC, и он вызывается один раз, когда VC загружается, но его не вызывают, когда я поворачиваю устройство, но метод в делегате приложения.
Если я полностью удаляю метод из делегата приложения, ориентация моих VC, похоже, полностью зависит от настроек ориентации интерфейса, поддерживаемых моими приложениями. Это, конечно, кажется, связано с тем, что метод supportedInterfaceOrientations
вызывается один раз на создание ВК, но никогда, Когда устройство вращается.
3 ответа:
Вам также нужно переопределить - (BOOL) shouldAutorotate и вернуть "YES". Это делает его так, что вы объявляете, какие ориентации ваш VC поддерживает с "supportedInterfaceOrientations", а затем при вращении он должен вызвать"shouldAutorotate". Если у вас есть какой-либо навигационный контроллер или панель вкладок, вам может потребоваться подкласс, чтобы сделать то же самое в них. У меня самого недавно была такая проблема.