Ios 如何使UIViewController半透明

Ios 如何使UIViewController半透明,ios,ios5,uiview,uiviewcontroller,Ios,Ios5,Uiview,Uiviewcontroller,我有两个UIViewController,我正在第一个ViewController上以模式显示第二个ViewController。我的secondViewController包含一个子视图,它是带有一些按钮的UIView。现在我要做的是,使SecondViewController半透明,这样我的firstViewController可见,并且只以模式显示不透明的子视图 里根 Ranjit当您呈现视图控制器时,上一个控制器的视图将被删除,因此如果您为当前控制器的视图设置任何alpha,您将获得UI

我有两个UIViewController,我正在第一个ViewController上以模式显示第二个ViewController。我的secondViewController包含一个子视图,它是带有一些按钮的UIView。现在我要做的是,使SecondViewController半透明,这样我的firstViewController可见,并且只以模式显示不透明的子视图

里根
Ranjit

当您呈现视图控制器时,上一个控制器的视图将被删除,因此如果您为当前控制器的视图设置任何alpha,您将获得UIWindow的背景

如果您想玩透明度游戏,那么在第一个viewcontroller中,
[self.view addSubView:controller2.view],而不是执行
presentModalViewController

并使controller2.view.alpha=0.5//无论您想要什么透明度级别

如果您的目标是iOS 5.0及以上版本,您都可以使用容器视图控制器方法:

//创建模式视图控制器
MyModalController*模态=[[MyModalController alloc]
initWithNibName:@“MyModal”包:nil];
[模态willMoveToParentViewController:self];
//将其添加到控制器和视图层次结构中
[self-addChildViewController:modal];
modal.view.frame=self.view.bounds;
[self.view addSubview:modal.view];
[modal didMoveToParentViewController:self];

然后,您在IB或代码中为主视图的背景设置的任何alpha都将得到尊重。

嗨,samFisher,如果我将controller2作为子视图,那么我可以将数据从controller2传递给controller1,因为不会调用ViewDidDisplay。嘿,如果我应用您的解决方案,alpha值应用于controller2中存在的子视图,我不需要它。。为此,您可以创建并实现自己的协议委托机制。我的意思是,有其他方法可以将数据从controller1传递到controller2,但不是为了你想要的透明度。对。。你可以设置你的控制器2.view.color=清除颜色,在控制器的主视图上设置另一个视图,并设置其alpha值我可以调用ViewDidDisplay,比如[firstcontroller ViewDidDisplay]?。你尝试过什么?你甚至尝试过谷歌吗???检查这个:-嗨@Leena我已经使我的视图透明了,我将其作为子视图而不是modalView,但是现在我不明白,我如何使用它来传递数据。你能告诉我你面临什么问题吗?嗨@Leena:我已经解决了这些问题,谢谢你,这对我不管用。