小编典典

iOS:具有透明背景的模态 ViewController

all

我正在尝试以模态方式呈现具有透明背景的视图控制器。我的目标是让呈现和呈现的视图控制器的视图同时显示。问题是,当呈现动画完成时,呈现视图控制器的视图消失了。

- (IBAction)pushModalViewControllerButtonPressed:(id)sender
{
    ModalViewController *modalVC = [[ModalViewController alloc] init];
    [self presentViewController:modalVC animated:YES completion:nil];
}

我知道我可以将视图添加为子视图,但出于某种原因我想避免使用此解决方案。我该如何解决?


阅读 97

收藏
2022-07-14

共1个答案

小编典典

以下代码仅适用于 iPad。

self.view.backgroundColor = [UIColor clearColor];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentModalViewController:modalVC animated:YES];

我会添加一个子视图。

这是一个很好的讨论。具体看评论。不仅仅是答案。

模态视图

如果我是你,我不会这样做。我会添加一个子视图并执行此操作。它似乎让我可以更好地控制事情。

编辑:

正如 Paul Linsay 所提到的,从 iOS 8
开始,所需要UIModalPresentationOverFullScreen的只是呈现
ViewController 的 modalPresentationStyle。这也将涵盖 navigationBar 和 tabBar 按钮。

2022-07-14