2010-12-23 162 views
1

我在我的應用程序中只支持橫向模式的主菜單。 我通過設置UIRootViewController::shouldAutorotateToInterfaceOrientation:... 實現了景觀限制我還有一個肖像模式支持的場景。 因此,當我從另一個場景以縱向模式傳遞到主菜單時,出現問題:應用程序不會自動旋轉到橫向,並且我找不到手動旋轉它的代碼方法。UiViewController旋轉問題

有沒有解決方案?會很感激。

編輯:對不起,我忘了補充細節。 RootViewController對菜單和另一個場景很常見。更重要的是 - 這些場景是在一個共同的視圖(我的應用程序使用OpenGL) 因此,在我從肖像場景進入菜單之前,我將UIRootViewController::shouldAutorotateToInterfaceOrientation:設置爲僅針對橫向返回YES。

回答

0

如果您有肖像支持其他場景通過另一個UIViewController的控制,那麼您可以使用視圖控制器的-shouldAutorotateToInterfaceOrientation:來定義其行爲。在很多情況下,僅此一項就足夠了。當然,如果你需要爲一些視圖控制器做一些奇特的旋轉,但不是爲其他視圖控制器做旋轉,那麼事情會變得有點棘手。

+0

我停在這個解決方案:殺死我現有的RootViewController並創建一個新的旋轉限制。似乎視圖控制器不是設計用來在運行時更改自動旋轉設置的。 – brigadir 2010-12-28 15:22:57

0

除了[UIDevice setOrientation:]之外,沒有簡單的方法可以做到這一點,它不向開發人員開放,導致Apple拒絕應用程序。

0

您可以將旋轉應用到您的圖層,這將創建完全相同的效果。

myview.layer.transform = CATransform3DMakeRotation(M_PI/2, 0.0f, 0.0f, 1.0f);