2012-11-17 45 views
2

我已經閱讀了幾乎所有關於新的iOS6 autorotation的答案,但我仍然無法做到我想要的。iOS6自動旋轉。 TabBar-> Navigation-> Modal

我有一個tabBar。其中一個選項卡是NavigationView。當你把iPhone變成風景時,一個modalViewController被加載。

一切工作正常在iOS5上,但我不能讓模態視圖旋轉在iOS6上。我已經嘗試了繼承導航控制器,繼承tabbar控制器和兩個!沒門。

我現在很困惑。哪一個是負責旋轉模態視圖? tabbarController?,navigationViewController?,viewController是誰展示的?

我很感激任何幫助。

由於

+0

[self presentModalViewController:newController animated:YES];在iOS6中不推薦使用,試試[self presentViewController:newController animated:YES completion:nil]; – Bala

+0

我期待着看到這個答案。我也有同樣的問題。 – ppaulojr

回答

2

在iOS6的,你必須改變應用程序的旋轉。 application.statusBarOrientation = UIInterfaceOrientationLandscapeLeft;

+0

它的工作原理!我知道這只是一種解決方法,但它節省了我的一天。謝謝。 :d – rmvz3

0

自轉在IOS 6 正在改變在iOS 6中,的UIViewControllershouldAutorotateToInterfaceOrientation:方法已被棄用。取而代之,您應該使用supportedInterfaceOrientationsForWindowshouldAutorotate方法。

更多的責任是轉向應用程序和應用程序委託。現在,iOS容器(例如UINavigationController)不會諮詢他們的孩子以確定他們是否應該自動旋轉。默認情況下,應用程序和視圖控制器支持的界面方向設置爲iPad的成語爲UIInterfaceOrientationMaskAll,iPhone成語的設置爲UIInterfaceOrientationMaskAllButUpsideDown

視圖控制器支持的界面方向可以隨時間變化 - 即使應用程序支持的界面方向可能隨時間而改變。無論何時設備旋轉或每當視圖控制器呈現全屏模式演示風格時,系統都會詢問其支持的接口方向的最頂級全屏視圖控制器(通常是根視圖控制器)。此外,僅當該視圖控制器從其shouldAutorotate方法返回YES時,纔會檢索支持的方向。系統將視圖控制器支持的方向與應用支持的方向(由Info.plist文件或應用代理的application:supportedInterfaceOrientationsForWindow:方法確定)相交以確定是否旋轉。

系統通過將應用程序的supportedInterfaceOrientationsForWindow:方法返回的值與最頂級全屏控制器的supportedInterfaceOrientations方法返回的值相交來確定是否支持方向。

setStatusBarOrientation:animated:方法不完全棄用。它現在只在最頂級全屏視圖控制器的supportedInterfaceOrientations方法返回0時起作用。這使得調用者負責確保狀態欄方向一致。

爲了兼容性,仍然實現shouldAutorotateToInterfaceOrientation:方法的視圖控制器不會獲得新的自動旋轉行爲。 (換句話說,它們不會退回到使用應用程序,應用程序委託或Info.plist文件來確定支持的方向。)相反,shouldAutorotateToInterfaceOrientation:方法用於合成supportedInterfaceOrientations方法將返回的信息。

willRotateToInterfaceOrientation:duration:willAnimateRotationToInterfaceOrientation:duration:,和didRotateFromInterfaceOrientation:方法不再調用的任何視圖控制器,使一個全屏幕呈現在其自身上,例如,presentViewController:animated:completion:上。

您應該確保您的應用程序不使用這些方法來管理任何子視圖的佈局。相反,他們應該使用視圖控制器的方法viewWillLayoutSubviews並使用視圖的邊界矩形調整佈局。

參考 - iOS 6.0 Release Notes

希望這可以幫助你

+0

對不起,我應該寫我已經知道這一點。我在目標總結中支持所有的方向。我已經subclassed導航控制器和tabBarController允許方向和設置shouldAutorotate爲YES。在呈現模式和視圖的視圖中也是如此。仍然沒有輪換。我錯過了什麼? – rmvz3

+0

請看第5段我的回答 – Bala

+0

你說得對,巴拉。對不起,我錯過了。讚美你的幫助。 – rmvz3