2014-07-21 179 views
0

我的應用程序需要同時支持縱向和橫向模式,只有縱向的一個視圖除外。我在論壇上發現我必須繼承導航控制器,然後使用SupportedInterfaceOrientations方法來處理它。iOS7自動旋轉視圖

但是,我的應用程序有不同的佈局,有一個tabbar控制器作爲rootview控制器,然後每個tabbar控制器都有自己的導航控制器。我還在rootview控制器上提供了一個登錄視圖(用於在app中進行身份驗證)。現在問題是我應該在哪裏添加

- (BOOL)shouldAutorotate 
{ 
    return NO; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 

此代碼 - 在導航控制器或Tabbar控制器或AppDelegate中。

+0

的圖,是一個即是唯一的肖像?它是登錄視圖嗎? – matt

+0

可能重複[在iOS6中,麻煩強制ViewController到某些interfaceOrientation推入堆棧時](http://stackoverflow.com/questions/15300819/in-ios6-trouble-forcing-viewcontroller-to-certain-interfaceorientation-when-膿液) – matt

回答

0

除非視圖是登錄視圖,否則您應該無處添加該代碼。 iOS 7不支持具有特殊方向的標籤欄控制器或導航控制器的單個子項。

在iOS 7中,如果您將代碼放在登錄視圖中,這將適用於登錄視圖,因爲它是一個呈現的視圖控制器,並且此配置對於呈現的視圖控制器是受支持的。

(在iOS系統中8,因爲它已被接種到這個時候,它甚至不會爲登錄視圖工作)。

+0

只有縱向視圖不是登錄視圖,它是Tabbar的視圖。你的意思是我不能只有肖像模式下的一個tabbar項目和縱向和橫向模式下的其他tabbar項目。 – User382

+0

我的意思是說。例如,請參閱我的答案:http://stackoverflow.com/a/15301322/341994我對導航控制器的說法與標籤欄控制器同樣適用。你所描述的只能在iOS 5和更早版本中使用。 – matt

+0

如果以上情況屬實,如何創建僅適用於橫向視圖的應用程序。如果您在Info.plist中指定支持的設備方向,那麼它應該應用於所有視圖,而不管它是否是標籤欄或導航欄或模型視圖。 – User382