2008-11-24 53 views
16

我的應用程序非常簡單:它啓動時帶有一個視圖控制器,該控制器包含幾個選項的表視圖(分組視圖佈局)。當用戶點擊其中一個選項時,我將另一個視圖控制器推到我的導航控制器上。如何在特定視圖控制器中強制屏幕方向?

第二個視圖控制器只顯示UIImageView,用戶可以在縱向/橫向模式之間更改此視圖控制器上的屏幕方向。這工作得很好,一切都很開心。

但是,如果用戶在橫向模式下點擊導航欄上的「返回」按鈕,則第一個控制器的佈局會全部混亂。請參閱下面的前/後截圖:

before http://pessoal.org/shot1.jpg after http://pessoal.org/shot2.jpg

如何迫使第一視圖控制器(在這個帖子第二截圖)留在縱向屏幕取向之內任何線索?

回答

2

似乎沒有辦法使用記錄的方法來做到這一點。

我已經提交了錯誤此:rdar:// 6399924

「沒有辦法,總是限制一個UIViewController一個方向」

你可以看到它在打開雷達(帶沿鏈接到示例代碼來重現問題)這裏:http://openradar.appspot.com/radar?id=697

+2

這個答案是從2008年現在你有解決方案[這裏](http://blog.typpz.com/2010/02/12/iphone-programming-how-to-force-your -app-to-run-in-landscape-mode /)我用來鎖定方向。 – 2012-10-05 12:09:19

-1

我無法按照我想要的方式工作。您應該能夠爲ViewController設置特定的方向,但NavigationController似乎並不總是做正確的事情。

我加入了重新設計我的屏幕,以便他們都在任何方向工作。這可能是額外的工作,但無論如何,它「感覺」更自然。

0

就像有人在開雷達的建議,一個解決方法是禁用「後退」按鈕,而在非畫像:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{ 
    // don't let user press "back" button in landscape - otherwise previous view and the rest of the application 
    // will also be in landscape which we did not feel like testing yet 
    self.navigationController.navigationBarHidden = (UIInterfaceOrientationPortrait != self.interfaceOrientation); 
} 
相關問題