UIViewController VC1中的一个按钮,从这个按钮,我们需要推送(不存在)一个UIViewController VC2,而VC2的backgroundColor是clearColor或带有alpha。
也许有人会回答我:只是setBackgroundColor [UIColor clearColor],如果这样,VC2会在推动时清晰或带有alpha,但在动画完成后,它的backgroundColor将是黑色或白色奇怪的,那个& #39;我的疑问。我只想在VC1上方使用VC2,从VC1我可以看到VC1,只是推送不存在!
答案 0 :(得分:1)
您应该使用以下代码:
[viewController2.view setBackgroundColor:[UIColor clearColor]];
答案 1 :(得分:0)
按下新的视图控制器将导致第一个视图控制器的视图从显示中移除。设置第二个视图控制器的背景颜色无济于事。
您可能需要将叠加层管理为第一个视图控制器视图的子视图。
答案 2 :(得分:0)
“呈现”视图控制器意味着将一个视图控制器显示在另一个视图控制器上。 “推送”视图控制器意味着将一个视图控制器替换为另一个视图控制器。如果你想保持另一个视图控制器,你必须提出新的控制器,而不是推它。
如果通过“推”意味着“从右侧滑入”,那么您的确意味着您希望通过自定义转换呈现它。这通常在iOS 8中使用UIPresentationController
完成。在iOS 7中,您可以使用UIViewControllerTransitioningDelegate
手动执行此操作,以提供所需的动画。
你应该看一下Ash Furrow的Custom UIViewController Transitions,以便对iOS 7方式进行一个很好的介绍。通过"Custom presentations using UIPresentationController in Swift"很好地覆盖了iOS 8(在Swift中)。
答案 3 :(得分:0)
好的,终极解决方案: 从VC1推送到VC2,VC1就这样做了:
步骤1, [VC1 addChildViewController:VC2]; [VC1.view addSubview:VC2.view]; [VC1 didMoveToParentViewController:self]; SETP2, VC2 setBackgroundColor clearColor或alpha。