這個應用程序在橫向iOS5中工作得很好。但是在iOS6中,它開始在所有視圖控制器中使用縱向方向。 shouldAutorotateToInterfaceOrientation方法不再被調用。我讀了new stuff about changed rotation mechanism in iOS6和我能夠解決這個問題通過增加線在我的AppDelegate:iOS6:我們是否必須在App委託中設置rootViewController以支持不同的方向?
self.window.rootViewController = _viewController
_viewControler是開始屏幕(主頁菜單)。所有其他視圖控制器都實現shouldAutorotateToInterfaceOrientation方法,並僅對橫向方向返回YES。所以,它是完全適用於需要僅支持一個方向的應用程序的解決方案。
但是,問題是我需要一個視圖控制器(讓我們稱之爲手機-VC)以縱向方向呈現。現在,如果我希望這個視圖控制器將被旋轉,那麼我需要在分配給appDelegate中的rootViewControler的主菜單控制器中返回YES。但是,我不能這樣做,因爲這個rootViewController是開始窗口,只需要在橫向上顯示,否則在此窗口中的圖形佈局將中斷。但是如果我不從其shouldAutorotateToInterfaceOrientation(Home-menu)返回YES,那麼我的視圖phone-VC中不會調用相同的方法,而是需要以縱向方式呈現。
任何想法? AppDelegate中是否必須分配rootViewController?
UPDATE:設備上存在問題(至少在iPhone4上)。
你在真的設備上還是在模擬器上有旋轉問題?我注意到模擬器的旋轉在一個真實的設備上是不同的。 – rckoenes
選中此... http://stackoverflow.com/questions/11544382/ios-6-screen-rotation-without-using-storyboard http://stackoverflow.com/questions/12775265/IOS -6- shouldautorotate-是-非存在所謂 – user1662392