Согласно заголовку. При вызове [[UIDevice currentDevice] BeginGeneratingDeviceOrientationNotifications] не имеет никакого эффекта.
DidRotateToInterfaceOrientation и т.д. события хорошо работают, но я должен смочь опросить ориентацию устройства произвольно.
Как я могу фиксировать / это?
Длинная история: у Меня есть приложение вкладки с контроллером навигации на каждой вкладке. Корневое представление вкладки номер один является графиком, который идет полный экран, когда ориентация изменяется на среду; однако это должно быть проверено каждый раз, когда представление появляется, поскольку изменение ориентации, возможно, произошло в другом месте, таким образом, я надеялся опросить состояние ориентации каждый раз, когда это представление появляется.
Разве [[UIDevice currentDevice] ориентация] не даст вам текущее состояние ориентации? Вы можете проверить это в своем методе viewWillAppear контроллера представления, который хочет опросить.
Редактировать: Помимо этого, существуют различные способы получить текущую ориентацию, например, используя свойство statusBarOrientation в UIApplication или свойство interfaceOrientation в UIViewcontroller.
кажется глупым вопросом, но не так ли?
beginGeneratingDeviceOrientationNotifications
(нижний регистр b) ...
Понятие ориентации UIDevice, похоже, доступно только на реальных устройствах. Симулятор, похоже, всегда возвращает 0, независимо от того, были ли включены уведомления, как указано в документации. Раздражающе неудобно, но вот так.
На реальном устройстве это работает нормально:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
NSLog(@"orientation: %d", [[UIDevice currentDevice] orientation]);
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];