2012-09-16 126 views
0

我们使用下面的代码来对齐屏幕的横向模式的iPad - 横向不工作在iPad,但在模拟器工作

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

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

+2

你的iPad在iOS 6.0上有任何机会吗?或者它的旋转锁定? (做其他应用程序旋转?) –

+0

Filip。你是对的。它的iPad 6.0。 Aint 6.0应该支持在5.1上运行的功能吗? Pl建议 –

+0

这是一个模态屏幕,它的父母仍在创建并呈现(即在'viewWillAppear'或'viewDidAppear')时呈现吗? –

回答

0

这可能是Filip引用的问题。

但是,我注意到的另一个问题是,真正的硬件 - 即使没有涉及iOS 6 - 也是如此,排序略有不同。

如果在视图控制器完全处理完自己的旋转之后,模态视图控制器将以纵向模式显示。第一个视图控制器没有完全处理自己的旋转,直到处理事件为止。换句话说,如果您试图在视图控制器(例如viewWillAppear)中的早期事件中呈现模态视图控制器,它将始终以纵向模式显示。

要解决这个问题,而不是立即呈现视图控制器,只需使用一个块将其安排到主循环。

更改调用视图控制器的线,这可能会是这个样子:

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

要:

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

如果你使用另一种方法来呈现新的视图控制器,尝试使用相同的方法:将它包含在dispatch_async中以便于主队列,以便稍后完成。

相关问题