Вопрос

Быстрая проблема:

У меня есть UITabBarController с двумя навигационными контроллерами [назовем их левым и правым контроллером]

На выбранном по умолчанию левом контроллере я могу нажать новый контроллер представления, который определяет ориентацию интерфейса.

На правом контроллере я могу нажать тот же контроллер представления, но он не определит ориентацию интерфейса или, если уж на то пошло, он вообще не войдет в метод mustAutoRotateInterface T___T

Хааалп!!

Если это имеет какое-либо значение, контроллер представления, который я нажимаю, использует свойство HidesBottomBarWhenPushed.

Это было полезно?

Решение

Ваш UitabbarController реализует автоматическое вращение? Любой дочерний воспроизведение контроллеров, который хочет реализовать авторотату, должен иметь свой родитель внедрить авторотату.

Другие советы

Скорее всего это ваша проблема:

Контроллеры стержней вкладок по умолчанию поддерживают ориентацию на портрету и не вращаются на ландшафтную ориентацию если все контроллеры корневого представления не поддерживают такую ​​ориентацию.Когда происходит изменение ориентации устройства, контроллер стержня вкладок запрашивает массив контроллеров представления.Если кто -либо из них не поддерживает ориентацию, контроллер стержня вкладок не изменяет свою ориентацию.

Решение состоит в том, чтобы переопределить следующий метод на каждом контроллере представления, ведущем к вашему представлению:

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation {
    return YES;
}

Например, вместо использования значения по умолчанию UITabBarController в IB замените его собственным подклассом, содержащим только указанный выше метод.

Я немного опаздываю на вечеринку на этом, но я бежал в проблему с Autolotation при запуске для приложения Bar Tab Bar, который я всегда хотел работать в портрете.

Plist app имеет необходимые настройки для начала и разрешены только портретным режимом, и все контроллеры моего представления разрешают только портретным режимом. Тем не менее, когда я начал приложение, проведение моего iPhone в ландшафте, приложение началось в портрете, но затем повернута к ландшафту!

А не подкласс UITabBarController, Я просто переполнен UITabBarControllerС. shouldAutorotateToInterfaceOrientation: Способ с использованием категории на классе UITabBarController. Отказ Я включил этот код в моем приложении делегата:

@implementation UITabBarController(UITabBarControllerCategory)

-(BOOL)shouldAutorotateToInterfaceOrientation:
                 (UIInterfaceOrientation)toInterfaceOrientation
{
    return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

Работает красиво, и довольно легкий.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top