Блокировка приложения только в альбомном режиме

#objective-c #cocoa-touch #xcode #ipad #landscape-portrait

#цель-c #cocoa-touch #xcode #iPad #альбомно-книжный #objective-c

Вопрос:

В моем приложении у меня есть условие запуска моего приложения только в альбомном режиме. поэтому для этого in будет поворачиваться в ориентацию интерфейса, которую я сделал таким образом:-

 return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
  

Но тогда и мое приложение сначала пытается загрузиться в портретном режиме, и в процессе экран выглядит растянутым. Я что-то упускаю? Пожалуйста, предложите. Любая помощь будет оценена

Спасибо,
Кристи

Ответ №1:

Вы говорите, что приведенный выше код находится в -(void)willRotateToOrientation тогда, когда он должен быть помещен в -(BOOL)shouldRotateToOrientation .

Предполагая, что это опечатка, установите поддерживаемые ориентации в файле Info.plist на LandscapeRight и LandscapeLeft.

Комментарии:

1. я сделал это, но все равно мое приложение при загрузке пытается загрузить экран в портретном режиме

2. По умолчанию файл.png загружается так, как ожидалось?

3. Ок, понял, и я должен написать эту строку в завершающем запуске applicationdid:-application.statusBarOrientation = UIInterfaceOrientationLandscapeRight; это сработало

Ответ №2:

Просто чтобы убедиться, что исправление Кристины в комментариях к другому ответу не пропущено:

 application.statusBarOrientation = UIInterfaceOrientationLandscapeRight
  

Я добавил это в didFinishLaunching функцию делегирования приложения, и, похоже, это принудительно обновляет view controller, который в моем случае гарантировал, что буфер кадров OpenGL был создан в правильных размерах, странно, что я должен это добавить.