我正在使用那段代码将UIViewController显示为具有半透明背景的模态(在IOS7及更低版本上工作)。
MyViewController *myViewController = [[MyViewController alloc] init];
navController.modalPresentationStyle = UIModalPresentationCurrentContext;
[navController presentViewController:myViewController animated:NO completion:nil];
现在使用IOS8进行编译会显示一个黑色背景的模态。
有什么解决方案吗? (没有制作动画子视图) 感谢。
答案 0 :(得分:2)
在iOS 8及更高版本中,您可以使用' UIModalPresentationOverCurrentContext'以此目的。从UIViewController文档:
<强> UIModalPresentationOverCurrentContext 强>
仅在内容上显示内容的演示样式 父视图控制器的内容。提出的观点 在演示文稿时,不会从视图层次结构中删除内容 饰面。因此,如果呈现的视图控制器没有填满屏幕 对于不透明的内容,基础内容会显示出来。
在弹出框中呈现视图控制器时,此演示文稿 仅当过渡样式为时才支持样式 UIModalTransitionStyleCoverVertical。试图使用不同的 过渡样式触发异常。但是,您可以使用其他 转换样式(部分卷曲转换除外)如果是父级 视图控制器不在弹出窗口中。
适用于iOS 8.0及更高版本。
我不知道在iOS 8之前曾经支持过透视模态呈现的视图控制器(并且会考虑我自己使用的),但上述选项肯定适用于我在新操作系统中的测试。 / p>
注意:请务必为您呈现的视图控制器提供clearColor的backgroundColor。