Появится iPhone — получение ориентации устройства в представлении контроллера первого вида

#iphone #uidevice

#iPhone #uidevice

Вопрос:

В моем приложении есть только один делегат приложения и контроллер просмотра. Приложение работает как в портретном, так и в альбомном режимах. В методе viewWillAppear моего контроллера представления я получаю ориентацию устройства, используя следующий код:

 UIInterfaceOrientationIsPortrait([[UIDevice currentDevice] orientation])
  

В первый раз, когда я запускаю приложение, даже когда мое устройство находится в портретном режиме, оно выдает результат в альбомной ориентации.
Почему это так. Как я могу это решить?

Ответ №1:

У меня было много проблем с currentDevice.orientation Попробуйте это:

 UIDeviceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation])
  

Ответ №2:

 UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;


if (UIDeviceOrientationIsLandscape(deviceOrientation)
{
   //LandscapeView
}
else
{
   //PortraitView
}
  

Ответ №3:

Из документации для UIDevice:

Значение этого свойства всегда возвращает 0, если уведомления об ориентации не были включены путем вызова beginGeneratingDeviceOrientationNotifications .

Если бы вы посмотрели на фактическое значение, возвращаемое «ориентацией», вы бы увидели, что это «UIDeviceOrientationUnknown».