如何使UIViewController半透明

时间:2012-07-19 12:40:38

标签: ios ios5 uiview uiviewcontroller

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

Reagards Ranjit

2 个答案:

答案 0 :(得分:4)

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

如果您打算使用透明度,那么在第一个viewcontroller中presentModalViewController

而不是[self.view addSubView:controller2.view]; and make controller2.view.alpha = 0.5;//whatever transparency level u want

答案 1 :(得分:0)

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

// create the modal view controller
MyModalController *modal = [[MyModalController alloc] 
  initWithNibName:@"MyModal" bundle:nil];
[modal willMoveToParentViewController:self];

// add it to the controllers and views hierarchies
[self addChildViewController:modal];
modal.view.frame = self.view.bounds;
[self.view addSubview:modal.view];
[modal didMoveToParentViewController:self];

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