Что произошло в моем приложении, я использовал готовый UITabBarController, который я перетащил в конструктор интерфейса xCode. Он не вращался сам (я думаю, по умолчанию он просто отображает портрет).
Решением было создание нового класса (при щелчке правой кнопкой мыши по списку файлов) New File> Objective C Class>, а затем в «Subclass of:» введите UITabBarController и дайте ему значимое имя (например, MyUITabBarControllerInHorisontalOrientation)
Что случилось, вы создали файл, который имеет все функции UITabBarController, но также вы можете добавить к нему еще немного. Поэтому вам нужно добавить в файл .m функцию, подобную этой:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
Boolean ans = (UIInterfaceOrientationLandscapeLeft == interfaceOrientation);
//this will display tabbar as a landscape left,
// but you can add more orientations using && operator
return ans;
}
, а затем в конструкторе интерфейса (интерфейсе wysiwyg, куда вы перетаскиваете кнопки) щелкните UITabBarController, который вы перетаскивали, и в меню «Утилиты»> «Инспектор идентификации»> «Пользовательский класс» (часто видимый как правая панель) выберите свой MyUITabBarControllerInHorisontalOrientation.
Надеюсь, это поможет