1

我的应用程序有一个包含导航控制器的选项卡栏。

当我旋转到横向时,我通过将横向视图推送到导航控制器堆栈来切换到不同的视图,如下所示:

    - (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 构建,但对于以后的版本似乎也是一样的。

有任何想法吗?

干杯灰

4

0 回答 0