在模态视图下方旋转视图

时间:2012-08-13 16:43:58

标签: ios cocoa-touch ipad uiview uiviewcontroller

我有UIViewController(称为MainViewController),它以模态方式呈现半透明视图(HelpOverlayViewController):

HelpOverlayViewController *helpOverlayViewController = [[HelpOverlayViewController alloc] init];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
helpOverlayViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:helpOverlayViewController animated:YES completion:nil];

如果用户在显示HelpOverlayViewController时旋转设备,则仅旋转HelpOverlayViewController而不是MainViewController,即父控制器。这是一个问题,因为HelpOverlayViewController是半透明的,MainViewController在其下方可见。

两个控制器都有方法

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

它们都可以独立旋转。

有什么方法可以在模态视图执行时强制底层视图控制器旋转?

1 个答案:

答案 0 :(得分:0)

我知道像iOS这样的问题可能会在很大程度上解决,因为它有一个不同的模型来处理旋转。

然而,这对你现在没有帮助。你可能最好只是让你的HelpOverlay成为UIView而不是UIViewController。您可以将此半透明视图添加到MainViewController(或任何其他)的顶部。将此子视图添加到视图层次结构时,仍可以创建动画(如淡入)。使用此模型,您将不再有任何旋转问题。