我有一個必須支持iOS 5.0及更高版本的iPad應用程序。我有一個bug在5.0/5.1中的表現與6.0中的不同。問題是tabbarcontroller中的視圖控制器推動模式視圖,該模式視圖又通過navigationController推動全屏視圖。問題是,在全屏視圖中,如果iPad旋轉,底層視圖控制器(tabbarcontroller中的一個)不會旋轉。現在讓我分析一下iOS版本的區別:在iOS 5和iOS 6自動轉換問題
首先,這個viewController實現了shouldAutoRotateToInterfaceOrientation(返回YES)以及willRotateToInterfaceOrientation和willAnimateRotationToInterfaceOrientation。
在iOS 6.0中,我注意到旋轉方法(willRotate ... & willAnimate ...)沒有被調用,所以我註冊它以接收UIDeviceOrientationDidChangeNotification通知,並執行兩個Rotate方法中的代碼,如果我收到該通知並且其他方法未執行。這解決了iOS 6.0中的問題。
問題是,在5.0/5.1旋轉方法(willRotate ... & willAnimate ...)正在執行,但視圖不旋轉。如果「全屏視圖」未顯示在此視圖控制器的頂部並且iPad已旋轉,則執行這兩種方法並相應地旋轉視圖。
請幫忙。提前致謝。
我試過的東西比上面說的不同。我試過檢查UIDeviceOrientation並將其轉換爲UIInterfaceOrientation並調用[self shouldAutorotateToInterfaceOrientation:xxx];該視圖仍顯示錯誤。
對於初學者來說,支持的方向在API中的iOS已經改變,所以您可能需要使用同時支持新舊方法進行試驗。 http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/RespondingtoDeviceOrientationChanges/RespondingtoDeviceOrientationChanges.html – Snips
我讀過iOS 6.0發行說明,並沒有實現該方法只是因爲我的問題是5.0/5.1的Bug修復了iOS 6.0的錯誤(儘管我可以實施新的方法以獲得更好的效果)。 – HackyStack