#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».