2009-12-01 59 views
4

我有一個TabBar基礎應用程序,它只支持一個特殊視圖(UINaviagtionController的rootview)的橫向方向。現在我想強制此導航控制器的所有其他視圖的縱向方向。 我曾嘗試使用強制將新視圖推送到UINavigationViewController的縱向方向

[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait];

這個偉大的工程,但這段代碼是一個私人API調用,我不能冒險一個應用程序拒絕。

我也嘗試手動旋轉下一個視圖,但這隻會旋轉視圖而不是導航或標籤欄。

有沒有相似的方法來強制改變方向?

回答

6

目前沒有辦法做到這一點。 看看這個question,我有同樣的問題。使用tabbar應用程序,您必須擁有所有自動轉換功能,或者什麼也不做。你可以找到方法讓每個視圖有不同的答案,但實際上這是行不通的。我不知道這是否是預期的行爲或錯誤,無論如何,我知道唯一可行的解​​決方案(不使用未公開的API)是自行管理旋轉,而不依賴於自動旋轉。

換句話說,這意味着你需要開始定向通知(看UIDevice,有方法來啓動和停止關於設備方向的通知),然後爲每個你想旋轉的視圖註冊爲觀察者,並管理方向手動,像這樣(不記得在那裏我得到這個片段):

// Rotates the view. 
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI/2); 
self.view.transform = transform; 
+0

由於安迪的幫助,我 – Naresh 2011-11-26 09:36:44

相關問題