如何使模式视图控制器透明

我使用目前的视图控制器来显示一个新的视图控制器从左..我使用的代码是..

UIViewController *controller; UINavigationController *navi; UIView *popmenu = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 300)]; popmenu.backgroundColor = [UIColor yellowColor]; controller.view = popmenu; controller.view.superview.backgroundColor = [UIColor clearColor]; navi = [[UINavigationController alloc]initWithRootViewController:controller]; navi.view.superview.backgroundColor = [UIColor clearColor]; CATransition *transition = [CATransition animation]; transition.duration = 0.4; transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; transition.type = kCATransitionPush; transition.subtype = kCATransitionFromLeft; [self.view.window.layer addAnimation:transition forKey:nil]; [self presentViewController:navi animated:NO completion:nil]; navi.view.superview.frame = CGRectMake(0, 0, 200, 540); 

我得到的输出是.. 在这里输入图像说明 在这里我可以调整视图控制器的视图,但如何调整视图控制器的大小,以便在背景中呈现的视图我的意思是调用这个模式视图的视图将是可见的,我可以做操作..就像有一个buttonclosures此模态视图..谢谢..

如果使用presentViewController:animated:completion:方法,而不为所呈现的控制器指定UIViewControllerTransitioningDelegate,则可以使呈现的视图控制器透明,但呈现视图控制器将始终消失(即背景变为黑色)。

这里有一个很好的教程,解释了如何在iOS 7上进行自定义转换http://www.doubleencore.com/2013/09/ios-7-custom-transitions/

这是我的实验: https : //github.com/Jafared/CustomTransitionTests

请注意,它只能在iOS 7上运行

我正在使用这个解决scheme..而不是创build另一个控制器和其他东西..这似乎很容易。

  [UIView animateWithDuration:1.0 animations:^{ //Move frame or transform view popmenu.frame = CGRectMake(0,0,200,570); table.frame = CGRectMake(200, 0, 120, 570); }]; 

我在iOS7上使用了以下方法。

它以正确的方向添加了导航控制器上方的视图,响应新的和底层的视图控制器的方向改变,并且背景最终透明。

 UIView *rootView = [[[[self view] window] rootViewController] view]; UIView *myView = [[self myViewController] view]; [myView setFrame:[rootView bounds]]; [myView setTranslatesAutoresizingMaskIntoConstraints:YES]; [myView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight]; [rootView addSubview:myView]; 

这意味着你必须实现自己的animation。