我想用导航控制器显示一个背景色清晰的视图控制器-Swift。
let nextViewController = SettingViewController(nibName: "SettingViewController", bundle: nil)
nextViewController.view.backgroundColor = UIColor.clearColor()
nextViewController.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
self.navigationController?.pushViewController(nextViewController, animated: true)
但它不起作用。
当我展示第二个视图但不使用导航控制器时,上面的代码是有效的。
最佳答案
我试过很多方法,但没有得到任何可行的解决方案。实际上,导航控制器的问题在于,当前视图动画从左到右随NextView控制器移动,而在iOS-8中,没有清除视图控制器背景的选项(实际上可以,但此时会出现另一个白色对象)。所以我们不能在这个场景中使用导航视图。
当前视图控制器的问题:如果您的应用程序正在导航控制器上运行,则不能使用当前视图控制器,因为在显示了任何视图控制器之后,您不能使用“推送其他视图控制器”,因此此解决方案在此方案中不可用。
解决方案:最后,我在当前控制器上添加了带有动画的NextView控制器视图。但条件是全局采用NextView控制器引用,否则NextView控制器按钮操作和某些其他操作将不起作用,应用程序将崩溃。
因此,只需获取NextView控制器的全局引用,并根据需要在PresentView控制器上添加带有动画的NextView控制器视图,然后随时删除(现在可以根据需要放置视图不透明度和颜色)。
这完全符合我的要求。