我使用那段代码将 UIViewController 显示为具有半透明背景的模式(在 IOS7 及更低版本上工作)。
MyViewController *myViewController = [[MyViewController alloc] init];
navController.modalPresentationStyle = UIModalPresentationCurrentContext;
[navController presentViewController:myViewController animated:NO completion:nil];
现在用 IOS8 编译显示一个带有黑色背景的模态。
有什么解决办法吗? (不制作动画 subview )
谢谢。
Best Answer-推荐答案 strong>
在 iOS 8 及更高版本中,您可以为此目的使用 'UIModalPresentationOverCurrentContext'。来自 UIViewController 文档:
UIModalPresentationOverCurrentContext
A presentation style where the content is displayed over only the
parent view controller’s content. The views beneath the presented
content are not removed from the view hierarchy when the presentation
finishes. So if the presented view controller does not fill the screen
with opaque content, the underlying content shows through.
When presenting a view controller in a popover, this presentation
style is supported only if the transition style is
UIModalTransitionStyleCoverVertical. Attempting to use a different
transition style triggers an exception. However, you may use other
transition styles (except the partial curl transition) if the parent
view controller is not in a popover.
Available in iOS 8.0 and later.
我不知道在 iOS 8 之前曾支持透明模态呈现的 View Controller (我将研究它以供我自己使用),但上述选项在我在新操作系统中的测试中绝对有效。
注意:请务必为您呈现的 View Controller 提供 clearColor 的 backgroundColor。
关于ios - ModalViewController 半透明背景,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/25915711/
|