iPad Layout仅在发布时有所不同

时间:2010-12-14 23:11:03

标签: objective-c ipad ios orientation

好的,我正在开发的iPad应用程序中有一个有趣的问题。

当应用程序以纵向模式启动时,布局按预期工作。我旋转iPad,旋转工作正常。

当应用程序以横向模式启动时,会出现额外的空白区域,并且布局无法按预期工作。但是当我将应用程序旋转到肖像时,它旋转得很好。当我将它旋转回景观时它也很好。

可能导致此问题的原因是什么?有问题的视图控制器是一个视图控制器,它包含一个UINavigationController(我必须在标题中添加)。我想知道它是否与UINavigationController有关。

2 个答案:

答案 0 :(得分:0)

您的视图在启动时期待纵向模式。在您的视图Controller中,您需要让它知道查找方向,并加载相应的视图。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    if(((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || 
        (interfaceOrientation == UIInterfaceOrientationLandscapeRight))){

        self.view = landscape;

    }else if(((interfaceOrientation == UIInterfaceOrientationPortrait) || 
              (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))){

        self.view = portrait;
    }

    return YES;
}

答案 1 :(得分:0)

好的,我的应用程序中奇怪的是,当标签控制器将标签切换回时髦的视图时,布局会变得正确。所以,我添加了一个hack,以便在主窗口的makeKeyAndVisible之前切换标签。

我确实试过你的建议WrightsCS。它不起作用的真正原因是因为我在页面的子视图中加载了UINavigationController的视图,所以我实际上并没有控制那些搞乱的布局。导航控制器的顶部栏的装载量比原本要低一些。