2010-06-01 57 views
3

我有一個常規的UINavigationController,我將一系列UIViewController推入堆棧。推動控制器的視圖轉換是水平動畫轉換: [self.navigationController pushViewController:controller animated:YES];iPhone風景導航後退動作顯示垂直視圖轉換?

但是,當我按下導航欄上的後退按鈕時,視圖過渡動畫是垂直的(垂直放下前一個控制器/視圖)。

我似乎沒有找到任何方法來使這個水平。這隻發生在風景模式。肖像模式轉換全部發生爲水平翻轉轉換。

任何人都可以對此有所瞭解嗎?

謝謝

回答

6

我有同樣的問題。當我按下回到第一個視圖時,我看到了一個垂直動畫,而不是正常的水平動畫。

我找到了一個基於蘋果NavBar示例代碼的答案。我編輯了示例代碼,將「shouldAutorotateToInterfaceOrientation」添加到所有視圖控制器,並使其返回YES。

當我跑它時,我注意到按下「返回」時使用了正確的動畫。

FIX:

好像你需要導航控制器內使用自己的子類的UIViewController,並添加shouldAutorotateToInterfaceOrientation。據推測,默認的UIViewController沒有返回正確的方向,所以使用了錯誤的動畫。

背景:

我檢查了所有我的代碼和蘋果之間的區別,我發現我的導航控制器是UINavigationController的,在那裏我完成所有工作的子類。默認情況下,IB已經在這裏面添加了一個UIViewController,並且我把它留下了。我注意到NavBar示例代碼有它自己的類集(MainViewController)。所以我讓Xcode創建了一個沒有xib的新UIViewController子類,然後在IB的Identity面板的Class選項中設置它。

我希望這是有道理的,並幫助!

+0

是的我有同樣的問題,我subclassed我的UIViewController並添加了該功能,它的工作原理!萬分感謝! – redDragonzz 2012-04-02 18:12:20