2012-11-01 53 views
4

我有一個tabbar應用程序。我通過將標籤欄控制器設置爲窗口根視圖控制器,然後通過子分類覆蓋navigationcontroller和tabbacontroller的行爲,固定標籤的方向(雖然不推薦)。 除了更多的導航控制器及其子級視圖控制器以外,現在的方向均適用於所有選項卡。我知道問題是設備旋轉通知沒有被傳遞給Tab控制器中的morenavigationcontroller內的子視圖控制器。 此外,更多navigationcontroller是隻讀屬性。在tabbarcontroller裏支持morenavigationcontroller和children viewcontroller中的所有方向iOS 6

我的問題是我想支持morenavigationcontroller和兒童視圖控制器中的所有方向。現在沒有調用morenavigation controller的子視圖控制器內部的shoulautorotate。

+0

請參閱類似的問題及其解決方案在http://stackoverflow.com/questions/13622194/tabbar-controller-with-navigationcontrollers-orientation-ios-6 – Nomiii

+0

我已經解決了這個問題。 iOS 6和iOS 7擁有不同的處理方向。頂視圖控制器決定所有孩子的方向支持。例如,如果父視圖控制器僅支持縱向,則子視圖控制器不能強制橫向。但是,如果你仍然想實現這一點,你可以呈現子視圖控制器。 –

回答

1

在iOS 6之後,Apple更改了應用程序的方向如何工作。請看下面的線程。這是很大的幫助

Tabbar controller with navigationcontrollers orientation ios 6

也可以使您的自定義tabbarcontroller並實現以下方法

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // You do not need this method if you are not supporting earlier iOS Versions 
    return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation]; 
} 

-(NSUInteger)supportedInterfaceOrientations 
{ 
    return [self.selectedViewController supportedInterfaceOrientations]; 
} 

-(BOOL)shouldAutorotate 
{ 
    return YES; 
}