Метод – все еще отрицается?

Я слышал, что использование функции [UIDevice setOrientation:] может быть причиной отклонения приложения в Appstore. Есть ли какие-либо подтвержденные сведения об этом?

Это правильно – ваше приложение будет отклонено при использовании этого частного метода. Мы это сделали, мы получили отказ (и мы нашли обходные пути).

Метод заключается в том, чтобы предоставить вам информацию о физической ориентации устройства, никакая кодировка не изменит эту физическую ориентацию. Он устанавливается в зависимости от гироскопов / акселерометров, для которых нет смысла указывать устройству, какова его ориентация.

Если вы хотите изменить ориентацию интерфейса, вы должны изучить обратные вызовы UIViewController, которые позволяют определить, что:

  interfaceOrientation property – shouldAutorotateToInterfaceOrientation: + attemptRotationToDeviceOrientation – rotatingHeaderView – rotatingFooterView – willRotateToInterfaceOrientation:duration: – willAnimateRotationToInterfaceOrientation:duration: – didRotateFromInterfaceOrientation: 

Текущее (iOS 5) определение:

 @property (nonatomic, readonly) UIDeviceOrientation orientation 

Таким образом, даже если есть сеттер ( setOrientation: или .orientation = ), это будет частный API, так как официальная документация говорит, что он не существует. И использование частного API приведет к отклонению.

Если метод не документирован, не используйте его. Использование недокументированных методов приведет к отклонению. Это так же просто, как проверка документации Apple.

В этом случае в документации указано:

 @property (nonatomic, readonly) UIDeviceOrientation orientation 

Использовать это:

  • (UIInterfaceOrientation) preferInterfaceOrientationForPresentation {return UIInterfaceOrientationPortrait; }
  • Как программно изменить ориентацию устройства в iOS 6
  • Обновление макета UICollectionView - размер элемента не изменяется
  • Проблема с ios 8 Orientation
  • Приложение UITabbar с разными ориентациями
  • как обеспечить только один вид с ландшафтом для MPMoviePlayerController в IOS6
  • Принуждение UIActionSheet к использованию определенной ориентации
  • Получение одинаковой ширины и высоты экрана для портретного и ландшафтного режима
  • Приложение iOS7 iPad для iPad, использующее UIImagePickerController
  • UISplitViewController и ориентация - iOS <5.0
  • Две строки текста в UISegmentedControl
  • Неправильная ориентация интерфейса в представленных контроллерах представления в iOS 8
  • Давайте будем гением компьютера.