为什么[UIViewController presentModalViewController:animated:]从左侧转换模态视图?

时间:2011-03-04 23:18:42

标签: ipad ios uiviewcontroller presentmodalviewcontroller

我正在iOS 4.3下构建一个仅在iPad上支持横向定位的应用程序,尽管该错误也出现在iOS 4.2下。

应用程序中的几个位置,我将UIViewController显示为模态视图。所有这些都使用这种模式显示:

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

在大多数地方,它们按预期工作 - 模态表单从屏幕底部向上滑动。

但是,在两种情况下,模态表单从屏幕左下角滑入。表单几乎一直向右滑动,表单底部不在视图范围内。如果您对文本字段进行聚焦并显示屏幕键盘,则表单将移动到屏幕顶部的中心位置。

我不认为XIB的模拟度量会影响他们的行为,但我已经为所有这些设置了方向(调用UIViewController self和模态视图控制器{{1景观。

为什么这两个模态表单的行为与其他表单不同?

2 个答案:

答案 0 :(得分:0)

我想在这里你应该在shouldAutorotate函数中返回横向方向,所以如果你想看左/右景观,请使用这个代码:

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

试试这可能对你有帮助..

答案 1 :(得分:0)

确保你有一个嵌入在NavigationController中的viewController,navController shouldAutotorate也设置为横向