ModalViewController半透明背景

时间:2014-09-18 14:39:14

标签: ios objective-c ios8

我正在使用那段代码将UIViewController显示为具有半透明背景的模态(在IOS7及更低版本上工作)。

MyViewController *myViewController = [[MyViewController alloc] init];
navController.modalPresentationStyle = UIModalPresentationCurrentContext;
[navController presentViewController:myViewController animated:NO completion:nil];

现在使用IOS8进行编译会显示一个黑色背景的模态。

有什么解决方案吗? (没有制作动画子视图) 感谢。

1 个答案:

答案 0 :(得分:2)

在iOS 8及更高版本中,您可以使用' UIModalPresentationOverCurrentContext'以此目的。从UIViewController文档:

  

<强> UIModalPresentationOverCurrentContext

     

仅在内容上显示内容的演示样式   父视图控制器的内容。提出的观点   在演示文稿时,不会从视图层次结构中删除内容   饰面。因此,如果呈现的视图控制器没有填满屏幕   对于不透明的内容,基础内容会显示出来。

     

在弹出框中呈现视图控制器时,此演示文稿   仅当过渡样式为时才支持样式   UIModalTransitionStyleCoverVertical。试图使用不同的   过渡样式触发异常。但是,您可以使用其他   转换样式(部分卷曲转换除外)如果是父级   视图控制器不在弹出窗口中。

     

适用于iOS 8.0及更高版本。

我不知道在iOS 8之前曾经支持过透视模态呈现的视图控制器(并且会考虑我自己使用的),但上述选项肯定适用于我在新操作系统中的测试。 / p>

注意:请务必为您呈现的视图控制器提供clearColor的backgroundColor。