2013-03-25 115 views
0

我一直在嘗試整個早上來解決這個問題,但都無濟於事。這是我的情況:在iOS6中旋轉破裂

我有一個導航控制器跨越我的應用程序中的兩個視圖。第一個視圖不應該從肖像旋轉。第二個視圖應該在縱向和橫向之間旋轉。回到第一個視圖應該將其發送回肖像。

下面的代碼我目前(我已經有沒有成功嘗試,所以絕不固體):

的AppDelegate:

- (NSUInteger)application:(UIApplication*)application 
supportedInterfaceOrientationsForWindow:(UIWindow*)window 
{ 
    return UIInterfaceOrientationMaskAll; 
} 

導航控制器:

- (BOOL)shouldAutorotate 
{ 
    return self.topViewController.shouldAutorotate; 
} 

第一視圖控制器:

-(BOOL)shouldAutorotate 
{ 
    return NO; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 

二視圖控制器:

-(BOOL)shouldAutorotate 
{ 
    return YES; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskAllButUpsideDown; 
} 

目前的行爲是,應用程序將停留在第一個VC波泰特,運轉正常在第二VC,但是如果我回去,而在景觀,第一個VC是在景觀並留在那裏。我怎樣才能解決這個問題?

+0

我認爲這種類型的界面旋轉是不鼓勵的,並且在iOS 6+下不易支持。 UINavigationController記錄爲「不要子類」。如果將第二個視圖控制器顯示爲模式視圖,而不是通過導航控制器,則會有更多運氣。模態呈現的視圖控制器可以獨立於其呈現視圖控制器進行旋轉。 – Greg 2013-03-25 14:41:47

回答

-1

我遇到了同樣的問題,並且據我記憶,由於自動旋轉的工作方式,您無法修復它。但是,我確實想出了一個解決方法 - 在橫向模式下,我隱藏了導航欄,禁用了點擊後退按鈕的選項。這可能或可能不適合你,但如果你想出一個更好的解決方案,我很樂意聽到它。