Вращающийся вид с навигационным контроллером на iPhone - PullRequest
1 голос
/ 16 июня 2009

В моем приложении есть панель вкладок, содержащая контроллеры навигации.

Когда я поворачиваюсь в альбомную ориентацию, я переключаюсь в другое представление, помещая ландшафтное представление в стек контроллера навигации следующим образом:

    - (void) orientationDidChange: (NSNotification *) notification {    
if (self.tabBarController.selectedViewController == self.navigationController) {
    if (self.navigationController.topViewController == self && 
        [[notification name] isEqualToString: kOrientationLandscape]) {
        [self.navigationController pushViewController: landscapeViewController animated: NO];
    } 

    if (self.navigationController.topViewController != self && 
        [[notification name] isEqualToString: kOrientationPortrait]) {
        [self.navigationController popViewControllerAnimated: NO];
    }
}

}

Это работает нормально, но когда я поворачиваюсь назад к портрету, вид отображается правильно, а затем «подпрыгивает» на величину, которую я предполагаю - это высота панели навигации. Верхняя часть вида скрывается за панелью навигации.

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

Кроме того, он отлично работает в симуляторе, но не на iPhone. Я собираюсь для 2.0, но, похоже, то же самое для более поздних версий.

Есть идеи?

Приветствие Ash

...