HelpOverlayViewController

HelpOverlayViewController

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

它们都独立旋转良好。

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

最佳答案

我确实知道,由于iOS 6具有处理轮换的不同模型,此类问题很可能会在iOS 6中得到解决。

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

09-07 12:14