我有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;
}
它们都可以独立旋转。
有什么方法可以在模态视图执行时强制底层视图控制器旋转?
答案 0 :(得分:0)
我知道像iOS这样的问题可能会在很大程度上解决,因为它有一个不同的模型来处理旋转。
然而,这对你现在没有帮助。你可能最好只是让你的HelpOverlay成为UIView而不是UIViewController。您可以将此半透明视图添加到MainViewController(或任何其他)的顶部。将此子视图添加到视图层次结构时,仍可以创建动画(如淡入)。使用此模型,您将不再有任何旋转问题。