Я создаю приложение для iPad в Xcode 4. Приложение должно всегда отображаться в альбомной ориентации. Чтобы добиться этого, я попробовал следующее:
- На экране Сводная информация о цели я выбираю только Левый ландшафт в качестве поддерживаемой ориентации устройства.
- В окне Target Info / Info.plist установите для параметра Поддерживаемые ориентации интерфейса (iPad) значение «Пейзаж» (левая кнопка «Домой»)
Это приводит к тому, что приложение запускается в ландшафтном режиме, но если я поворачиваю устройство, оно все равно меняет свою ориентацию. Кроме того, когда у меня есть UIViewController, представленный с presentationStyle UIPresentationFormSheet, он поворачивается, чтобы отобразить момент, когда он показывает.
В некоторых других темах / форумах было рекомендовано создать категорию для UIViewController и переписать
-(UIDeviceOrientation)interfaceOrientation;
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;
Чтобы всегда поворачиваться к Ориентации устройства (LandscapeLeft) или, в частности, к LandscapeLeft, также к автоматическому повороту, если вы не поворачиваетесь к LandscapeLeft.
Когда я устанавливаю эти функции следующим образом (или, например, вообще не разрешаю вращение), приложение всегда отображается в портретном режиме и не будет вращаться, даже в LandscapeLeft. Единственный способ запустить приложение в ландшафтном режиме - это разрешить вращение независимо от того, какой интерфейс имеет интерфейс.
Кто-нибудь знает, как я могу это исправить?
Категория, которую я реализовал:
@implementation UIViewController(Extends)
-(UIDeviceOrientation)interfaceOrientation
{
return [[UIDevice currentDevice] orientation];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
return YES;
else
return NO;
}
@end
Единственное место, где я могу найти Книжную ориентацию для определения, - это оригинальное окно в MainWindow.xib, но это не может быть изменено, и каждая ветка / форум говорит, что этот конкретный параметр является / не должен быть проблемой.