2014-09-23 28 views
0

我的應用程序是爲iOS7編寫的,我試圖讓它更新到iOS 8.我的應用程序被配置爲只能在左側風景和右側風景方向工作。iOS 8屏幕幻燈片錯誤的方向,當返回按鈕點擊

對於iOS 8,我更改了導航屏幕的順序,並將其中一個模式屏幕更改爲推送過渡。在主屏幕上,我在UINavigationItem上有兩個UIBarButtonItems。其中每個都有一個分配給他們的push segue,連接到不同的屏幕。

當應用程序正在運行並且點擊其中一個UIBarButtonItems時,通過segue關聯的屏幕在預期的主屏幕上滑動。後退按鈕顯示正常。點擊後退按鈕時會出現問題。屏幕不會像預期的那樣向右滑動。

在運行iOS 7的iPhone 4上,屏幕總是向下滑動(朝向地面),無論設備的風景是左側還是右側風景。

在運行iOS 8的iPhone 6 Plus上,被呼叫的屏幕快速旋轉至顛倒(頂部朝向主屏幕按鈕),然後滑動至主屏幕按鈕一側。再次,無論手機以哪種方式定位風景左側或右側風景方向均無關緊要。

我嘗試設置preferredInterfaceOrientationForPresentation,shouldAutorotate爲NO,並將supportedInterfaceOrientations設置爲UIInterfaceOrientationLandscapeRight回到頂端| UIInterfaceOrientationLandscapeRight。似乎沒有任何區別。

我的屏幕導航很簡單,我沒有使用任何自定義轉換。所有這些都是通過標準推送。

我需要讓屏幕「返回」轉換再次正常工作。

任何幫助,非常感謝!

回答

0

我終於發現是什麼導致我的屏幕滑向錯誤的方向。事實證明,重寫UIViewController中的supportedInterfaceOrientations方法並返回UIInterfaceOrientationLandscapeRight | UIInterfaceOrientationLandscapeLeft混淆了iOS 8中的轉換(以及也運行iOS 7的設備)。這是iOS 7中正確操作所必需的,但顯然會導致iOS 8出現問題。所以一旦我刪除了代碼,屏幕過渡將再次正常開始。

+0

'supportedInterfaceOrientations'應該從 'UIInterfaceOrientationMask'返回值。你應該已經返回了'UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight'。我不知道這是否會解決你的問題,或者如果這只是你的問題的拼寫錯誤。 – 2015-01-27 01:55:42

+0

是的,我解決了這個問題。但我會記住這一點,以防我再次遇到這種情況。 – Rob 2015-01-27 03:13:38