我有兩個UIViewControllers,「A」和「B」,其中「A」重寫shouldAutorotateToInterfaceOrientation爲UIInterfaceOrientationPortrait返回YES,而「B」返回YES爲所有方向。在我的例子中,「A」是根導航視圖控制器,然後使用pushViewController作爲「B」。之後,我將設備旋轉到橫向,成功自動旋轉「B」,然後彈出「B」(後退按鈕或通過popViewController)返回到「A」。popViewController不自動回到允許的方向
當靶向iPhone OS 3.1.3, 「A」 的預期收益爲縱向。當瞄準iPhone OS 3.2時,我有兩個副作用:
- 「A」橫向顯示。
- 儘管「A」現在顯示的導航欄不更新。導航欄仍顯示「B」的項目。只有在嘗試返回/彈出一次後,導航欄纔會生成動畫,以顯示「A」的項目。如果我不是試圖推動「B」再次回去,我要彈出兩次導航欄動畫顯示的項目爲「A」之前。在這些「中間流行音樂」期間,「A」的視圖仍然顯示。
在研究這個問題,我看到其他的答案提示手動執行的位移(的UIDevice setOrientation]或經改造的探討),但是這並不能幫助瞭解是什麼問題,特別是它爲什麼之間具有不同的行爲兩個操作系統。
所以我的問題是:必須在所有我UIViewControllers上的UINavigationController棧支持完全相同的方向的前進?如果沒有,那麼我需要做些什麼才能使它像OS 3.1.3一樣運行?
這個問題也發生在iPhone OS 4.0。 – iamj4de 2010-07-08 12:32:58
這種行爲是否在設備和模擬器上發生?由於模擬器錯誤,我有類似的問題,只發生在模擬器上。 – MrHen 2010-05-07 20:15:21