为模态视图显示透明背景

Posted

技术标签:

【中文标题】为模态视图显示透明背景【英文标题】:Show transparent background for modal view 【发布时间】:2015-05-24 15:42:06 【问题描述】:

我想通过我的导航控制器显示一个模态视图,并且这个视图的背景应该是透明的。在模态视图控制器中,我清除 viewDidLoad 的背景如下:

self.view.backgroundColor = [UIColor clearColor];

我将这个视图显示如下:

ModalViewController *modalViewController = [[ModalViewController alloc] init];
[self.navigationController presentViewController:modalViewController animated:YES completion:nil];

结果显示了我的视图,但背景是黑色的。我已经尝试过:

[self setModalPresentationStyle:UIModalPresentationCurrentContext];

对于我所有的视图控制器,包括 NavigationController。我已经尝试过:

self.navigationController.providesPresentationContextTransitionStyle = YES;
self.navigationController.definesPresentationContext = YES;

然而,这一切都行不通。是否有可能实现我的任务,或者我应该用另一种方式展示我的观点?

【问题讨论】:

【参考方案1】:

您是否在 SO Display clearColor UIViewController over UIViewController 上查看过这个问题?

你的问题似乎有了答案。基本上你必须设置 表示样式为“UIModalPresentationCurrentContext”。

【讨论】:

感谢您的回答。我仔细写了你的链接,并在那里发现了我的问题:)【参考方案2】:

我使用 UIModalPresentationCurrentContext 而不是 UIModalPresentationOverCurrentContext。使用 UIModalPresentationOverCurrentContext 解决了这个问题。

【讨论】:

以上是关于为模态视图显示透明背景的主要内容,如果未能解决你的问题,请参考以下文章

如何呈现具有透明背景的模态视图控制器

如何在 SwiftUI 中制作具有透明背景的模态视图?

具有透明背景的模态 UISplitViewController

具有透明背景和不透明前景的 iOS 模态 ViewController

iOS - 半透明模态视图控制器

模态转场导致黑屏