1

我的問題是以下幾點:我只想允許所有ViewControllers上的縱向方向,除了1個ViewController,它應該允許Portrait和landscapeLeft/Right。現在,我已經花費了將近2天的時間瞭解如何在IOS中爲不同的幻燈片/ ViewController設置方向。經過一番搜索,我發現這個線程在這裏堆棧:UITabBarController Rotation Issues in ios 6UITabBarController/UINavigationController旋轉問題

我跟着那個線程Kunani的例子,我將張貼在這裏保存所有的讀者一些時間:

扎克,我遇到了同樣的問題。這是因爲你的viewController嵌入到了TabBar控制器或UINavigationController中,並且這些方法的調用發生在那些內部而不是普通視圖(在iOS6中更改)。我遇到了這個問題,因爲我提出了一個viewController嵌入在UINavigationController中的所有我的模式視圖,導航到不同的視圖(註冊過程,登錄等)。我的簡單修復是爲UINavigationController創建一個包含這兩種方法的CATEGORY。無論如何,我還是應該退回NO,因爲我不想讓模態視圖旋轉。你的解決方法可能很簡單,試試看。希望能幫助到你。我創建了一個類別並將其命名爲autoRotate並選擇了UINavigationController選項。 M + H文件如下。

#import "UINavigationController+autoRotate.h" 

@implementation UINavigationController (autoRotate) 

-(BOOL)shouldAutorotate { 
return NO; 
} 

- (NSUInteger)supportedInterfaceOrientations { 
return UIInterfaceOrientationMaskPortrait; 
} 

@end 

...和類別.H:

#import <UIKit/UIKit.h> 

@interface UINavigationController (autoRotate) 

-(BOOL)shouldAutorotate; 
- (NSUInteger)supportedInterfaceOrientations; 

@end 

我做了什麼,他說,試圖設置類別爲我的UITabBarController其工作,連接的TabBar所有類現在只允許orientationPortrait 。但是,如果你看看下面的圖片

enter image description here

(截圖來自我的項目)有一個名爲ShowTaskView故事板的中間階級。這個類通過UINavigationController連接到大多數類(它們直接連接到UITabBarController)。即使我設置UITabBarController只允許肖像也ShowTaskView似乎受該規則的影響,我不能讓它旋轉。在我的項目的方案也被描述爲這樣:

TabBarController ----> UINavigationController -------> class X ----------> class ShowTaskView 

我可以在這裏做,如果我想我的班連接到tabBarController只允許orientationPortrait和類的其餘部分允許縱向和橫向的基於我的項目是如何構建的?我在這個問題上很沮喪,因爲它是如此該死的努力來解決:/

問候

+0

請參考我的答案,我認爲它解決了您的問題 http://stackoverflow.com/questions/12522903/uitabbarcontroller-rotation-issues-in-ios-6/17161835 –

回答