2

我有一个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;
}

它们都独立旋转良好。

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

4

1 回答 1

0

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

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

于 2012-08-13T17:50:26.630 回答