強制UIInterfaceOrientation更改我很想獲得一個iPhone應用程序,它只需要在導航控制器堆棧中的每次按下或彈出來改變方向。iPhone
基本上第一個視圖是肖像,第二個景觀是第三個肖像(是的,我知道這不是理想的,但這是設計,我必須實現它)。
我經歷過各種建議在這裏....
How do I detect a rotation on the iPhone without the device autorotating?
Force portrait orientation on pushing new view to UINavigationViewController
Is there a documented way to set the iPhone orientation?
但是,如果沒有完全成功。
設置爲3.1.2對我的閱讀鏈接鏈接的文章上面似乎表明,如果我的縱向視圖與推
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return ((interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}
視圖,則然後該視圖應顯示旋轉爲橫向。會發生什麼,它會以「破碎」的人像形式出現,然後在設備轉動時正確旋轉。
如果我將控制器彈回到我的縱向視圖(其具有合適的shouldAutoRotate ...),那麼它仍然處於破損的橫向視圖中,直到設備返回縱向。
我也嘗試刪除所有shouldautorotate消息,而是通過轉換視圖強制旋轉。這種作品,我已經通過移動狀態欄(實際上隱藏在我的應用程序)[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;
中發現,鍵盤在需要時會以正確的方向顯示。
這種方法的問題是,當你沒有狀態欄時,狀態欄變換很奇怪,很醜 - 每次更改都會在頁面上出現陰影。
所以。我錯過了什麼。
1)我錯誤地認爲在3.1.2(或可能更早)shouldAutorotateToInterfaceOrientation應提供所需的方向,只需通過推動控制器?
2)是否有另一種讓鍵盤以正確的方向出現的方法。
3)是未公開的API調用的路要走(請無)
我不確定是否有[UIApplication setStatusBarOreintation ....和[UIApplication sharedApplication] .statusBarOrientation之間的區別...我會測試,否則這就是我所做的,我受苦於狀態欄旋轉的陰影。在橫向視圖中,我使用變換最初在景觀中顯示視圖。如果我然後允許使用shouldAutorotateToInterfaceOrientation的橫向視圖,它不會再被轉向嗎?我如何覆蓋它? – Andiih 2010-04-22 17:47:48
請注意,此方法現已在iOS 9中棄用。 – fullofsquirrels 2016-06-17 20:30:14