2010-08-26 62 views
6

我的應用程序使用2個UIWindows。 第一個示出具有帶有ViewControllers僅旋轉到肖像取向一個的TabBar控制器。到此爲止,一切都很好。多個Windows輪換問題 - iPhone/iPad的

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

在另一個窗口,我有一個UIViewController旋轉到所有的方向。

的問題是,當我告訴第二個窗口

[secondWindow makeKeyAndVisible]; 

,然後返回到第一個

[firstWindow makeKeyAndVisible]; 

狀態欄旋轉到各個方向的活動shouldAutorotateToInterfaceOrientation不會觸發。我如何解決這個問題?

回答

4

其優良的有多個UIWindows在一個應用程序,但在這裏需要提醒的是,蘋果的代碼似乎通過檢查每一個UIWindow你,看看最上面的視圖控制器允許一定的旋轉。如果這些窗口中的任何一個都允許旋轉,則無論UIWindow是最前面還是可見,狀態欄都將旋轉。

在我自己的應用程序,我躲,我沒有使用的UIWindow,並增加了在相關UIViewControllers一個是否隱藏檢查,不允許旋轉;如果當前隱藏的窗口。

1

其優良的有多個UIWindows在一個應用程序,但在這裏需要提醒的是,蘋果的代碼似乎通過檢查每一個UIWindow你,看看最上面的視圖控制器允許一定的旋轉。

根據答案,做了很多測試並得出結論:狀態欄的旋轉依賴於每個窗口的最頂層視圖控制器。