2011-03-04 89 views
4

我正在構建一個應用程序,它只支持iOS 4.3下iPad上的橫向方向,但該錯誤也出現在iOS 4.2下。爲什麼[UIViewController presentModalViewController:animated:]從左邊過渡模態視圖?

在應用程序中的幾個地方,我顯示UIViewController s作爲模態視圖。所有這些都使用這種模式顯示:

viewController.modalPresentationStyle = UIModalPresentationFormSheet; 
viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
[self presentModalViewController:viewController animated:YES]; 

在大多數地方,他們的工作預期 - 模態形式片幻燈片從屏幕底部向上。

但是,在兩種情況下,模態表單從屏幕左下角滑入。表格頁幾乎一直向右滑動,表格頁的底部不可見。如果您將文本字段對焦並顯示屏幕鍵盤,表單會移動到您期望的屏幕中心位置。

我不認爲XIBs的模擬指標影響他們的行爲,但我已經爲所有的人的方位(包括呼叫UIViewControllerself和模態視圖控制器viewController)爲橫向。

任何想法爲什麼這兩個模態表單的行爲與其他模式有所不同?

+0

你找到了答案...你能幫我嗎?我正在努力解決這個問題,我以橫向模式在SubView(ViewController)中調用了這段代碼。但modalview從左側像肖像模式出現,這也出現在全屏幕.....請... – 2011-06-23 10:32:01

回答

0

我覺得這裏你shouldAutorotate功能力回報橫向因此,如果您灣景景觀左/右使用此代碼:

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

試試這個,它可以幫助你..

0

確保如果你有一個viewController嵌入在NavigationController中,navController shouldAutotorate也設置爲橫向