Как получить события вращения на ViewController в UITabBarController-> UINavigationController? - PullRequest
0 голосов
/ 10 ноября 2011

Я хочу показывать полноэкранный альбомный режим всякий раз, когда пользователь поворачивает устройство iOS из портретного в альбомный режим, где портретный вид - это вид в TabBar и NavigationController.

Однако, willRotateToInterfaceOrientation: duration: никогда не вызывается.Я также тестировал добавление ViewController в качестве наблюдателя событий UIDeviceOrientationDidChangeNotification, но это уведомление также вызывается с неопределенной ориентацией.

Каким будет лучший и самый простой способ для данной задачи?

1 Ответ

1 голос
/ 10 ноября 2011

Есть также UIApplicationWillChangeStatusBarOrientationNotification и UIApplicationDidChangeStatusBarOrientationNotification уведомления.

Словарь userInfo содержит объект NSNumber, который инкапсулирует значение UIInterfaceOrientation. Используйте UIApplicationStatusBarOrientationUserInfoKey для доступа к этому значению

    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(didRotate:)
                                                 name:UIApplicationDidChangeStatusBarOrientationNotification 
                                               object:nil];

- (void) didRotate:(NSNotification *)notification{   
    NSNumber *num = [[notification userInfo] objectForKey:@"UIApplicationStatusBarOrientationUserInfoKey"];
    NSLog(@"%d", [num intValue]);
}
...