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