在swift中推送到具有清晰背景的第二个视图控制器

时间:2015-07-02 13:14:35

标签: iphone swift ios8

我想使用导航控制器显示一个具有清晰背景颜色的视图控制器 - 快速。

let nextViewController = SettingViewController(nibName: "SettingViewController", bundle: nil)
    nextViewController.view.backgroundColor = UIColor.clearColor()
    nextViewController.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
    self.navigationController?.pushViewController(nextViewController, animated: true)

但它不起作用。 当我呈现第二个视图但不使用导航控制器时,上面的代码正在工作。

1 个答案:

答案 0 :(得分:1)

我尝试了很多方法,但没有得到任何可行的解决方案。实际上导航控制器的问题是当前视图动画从左到右开始用nextViewController移动,而在iOS-8中没有选项来清除视图控制器背景(实际上你可以,但是另一个白色对象出现在这个位置)。所以我们不能在这种情况下使用导航视图。

当前视图控制器出现问题:如果您的应用程序在导航控制器上运行,我们无法使用当前视图控制器,因为您在呈现任何视图控制器后无法使用推送其他视图控制器,因此此解决方案在此方案中无用。 / p>

解决方案:最后我在现有控制器上添加了动画的nextViewController视图。但条件是全局采取nextViewController引用,否则nextViewController按钮操作和其他一些操作将无法工作,应用程序将崩溃。 因此,只需获取nextViewController的全局引用,并在presentViewController上添加带有动画的nextViewController视图,并在需要删除时删除(现在可以根据需要放置视图不透明度和颜色)。 这是我想要的完美工作。