2012-09-16 134 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中以便於主隊列,以便稍後完成。

相關問題