2011-01-20 68 views
4

我已經創建了一個以模態視圖初始頁面開始的分體視圖應用程序。問題是模式視圖總是以縱向模式啓動,即使ipad處於橫向模式。如果我旋轉ipad幾次,它會適當旋轉。我在Info.plist中設置了UIInterfaceOrientation,但它沒有任何影響。在didFinishLaunchingWithOptions通過分體式視圖控制器啓動的模態視圖的問題

,我使用下面的代碼

... 
[self.window addSubview:splitViewController.view]; 
SplashViewController *modalView = [[SplashViewController alloc] intiWithNibName:nil bundle:nil]; 
modalView.modalPresentationStyle = UIModalPresentationFullScreen; 
[splitViewController presentModalViewController:modalView animated:YES]; 
... 

我如何能確保模態視圖中的風景啓動有什麼建議?

+0

同樣的問題~~~~ – ludo 2011-01-25 10:10:01

回答

1

我覺得這是更好的方式來做到這一點:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation==UIInterfaceOrientationLandscapeRight) { 
     return YES; 
    } 
    return NO; 
} 
+0

更簡單:return(UIInterfaceOrientationIsLandscape(interfaceOrientation)); – atticus 2011-10-14 02:22:00

0

在啓動模態視圖的文件中,您需要更改/覆蓋以下功能。你可以簡單地複製和粘貼下面的代碼,你應該能夠啓動模式視圖中肖像風景模式:

- (BOOL)shouldAutoRotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return YES; 
} 

好運。

編輯:我說肖像模式,而不是我的意思是:景觀模式。

+0

感謝您的答覆。我正在從didFinishLaunchingWithOptions方法啓動模態視圖。上面的方法已經在分割視圖和模態視圖控制器本身中出現的視圖控制器的.m文件中設置。全部無效 – Aaron 2011-01-21 19:35:39

1

我在使用Matt Gemmell's MGSplitViewController時遇到類似問題。在我的情況下,通過嘗試在詳細視圖控制器(即UISplitViewController標準中的「右側」窗格)中以FormSheet模式打開模式視圖控制器,我的模式視圖強制將界面旋轉爲縱向。 我找到了解決方案通過重寫模式視圖控制器 - > shouldAutorotateToInterfaceOrientation:並讓他返回NO:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Overriden to allow any orientation. 
    return NO; 
}

在當模式將被提出,由於某種原因,操作系統試圖迫使它這樣肖像。通過回答NO,視圖不再旋轉,一切正常。

+0

你不能實際返回NO作爲答案,因爲你會得到一個運行時警告,抱怨沒有支持的方向,它將默認爲肖像。儘管你的答案幫助我弄清楚了。謝謝! – Brooks 2012-03-29 20:13:45

相關問題