视图presentViewController的透明背景

时间:2014-03-24 12:47:15

标签: ios

我正在使用presentViewController在另一个ViewController中单击按钮时显示弹出窗口。但我得到了黑色背景。我需要一个透明的背景。我尝试了以下内容,

UIView v1 = [[UIView alloc] init];
v1.alpha = 0.0f;
v1.backgroundColor = [UIColor clearColor];
[self.view addSubview:v1];
UIView v2 = [[UIView alloc] initWithFrame:10,10,270,270];
v2.backgroundColor = [UIColor whiteColor];
[v1 addSubView:v2];

这会显示弹出窗口,但稍后会在屏幕上显示空白。 谁能帮帮我吗。提前谢谢。

此致

NEHA

3 个答案:

答案 0 :(得分:3)

如果您在iPhone上进行测试,那么presentViewController会在呈现所呈现的视图后隐藏父视图,因此您的请求无效。

如果您使用的是iPad,那么presentViewController可以通过将呈现的viewcontroller的modalPresentationStyle属性设置为UIModalPresentationFormSheet

来获得您想要的效果

答案 1 :(得分:0)

我找到了以下适用于我的解决方案。

在我使用presentViewController的第一个ViewController.m中,我添加了以下代码,

SecondViewController *second = [[SecondViewController alloc] init];
second.view.backgroundColor = [UIColor clearColor];
self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:second animated:YES completion:nil]

答案 2 :(得分:0)

我认为有一种方法可以使用-presentViewController 100%正确地完成这项工作。您可能必须使用保留透明度的-addSubView,并且将正确呈现。但是,您必须制作自己的动画,以使其像-presentViewController一样动画。