iPad - 横向不适用于iPad,但在模拟器中工作

时间:2012-09-16 02:10:06

标签: ios ipad

我们使用以下代码来对齐横向模式中的一个屏幕

    - (BOOL)shouldAutorotateToInterfaceOrientation:     
    (UIInterfaceOrientation)interfaceOrientation
    {
     return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
    }  

它在5.1模拟器(横向)中显示为预期,但在纵向模式下显示
 在iPad中。 Pl建议

1 个答案:

答案 0 :(得分:0)

这可能是菲利普所指的问题。

然而,我注意到真实硬件的另一个问题 - 即使没有涉及iOS 6 - 其顺序也略有不同。

如果您在视图控制器完全处理其自身旋转之前尝试使用模态视图控制器,则模态视图控制器将以纵向模式显示。在为其处理事件之前,第一个视图控制器尚未完全处理自己的旋转。

换句话说,如果您尝试从视图控制器中的早期事件(例如viewWillAppear)呈现模态视图控制器,它将始终以纵向模式显示。

要解决此问题,请立即使用块将其安排到主循环,而不是立即显示视图控制器。

更改调用视图控制器的行,可能如下所示:

[self performSegueWithIdentifier: @"firstRun" sender: self];

要:

dispatch_async(dispatch_get_main_queue(), ^{
    [self performSegueWithIdentifier: @"firstRun" sender: self];
});

如果您正在使用其他方法来呈现新的视图控制器,请尝试使用相同的方法:将其包装在dispatch_async中,然后将其包含在主队列中,以便稍后完成。