2014-05-16 55 views
0

所以,我有根控制器,可以旋轉到任何取向和一個視圖控制器僅示出了使用supportedInterfaceOrientations的iOS 7 supportedInterfaceOrientation無法按照預期的工作

橫向模式
- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskLandscape; 
} 

因此,當我通過設置呈現視圖控制器窗口的根控制器是在應用程序的某個點,像按下按鈕,它開始在橫向模式。每次它旋轉時,都會調用該方法。但是當我旋轉到肖像時,即使我告訴他們只使用風景,它仍然是人像。有什麼建議?

回答

2

問題是隻有最頂層的視圖控制器被諮詢。例如,如果您有導航控制器及其根視圖控制器,則只有導航控制器所說的重要。 (你可以使用導航控制器代理的navigationControllerSupportedInterfaceOrientations:來給出你想要的答案。)

+0

試過這個,它的工作原理。但是,如果我彈出控制器,狀態欄會認爲它仍然處於橫向模式,並且如果我推送到支持所有方向的新視圖控制器並以縱向開始,則它將開始橫向模式。任何想法如何解決這個問題? –

+0

@PaoloPascua你不能。 Push/pop不會改變iOS 7中的方向。 – matt

+0

但是這種方法會影響後續的視圖控制器。對我來說,我做了一些self.navigationController.delegate = self出現並恢復原始代表關閉 –