我试图将视图控制器设置在另一个视图控制器之上,同时保持第一个视图控制器可见。
但是,我看不到第一个,因为我有一个UITransitionView,顶部有一个UIView(第一个在层次结构中,我知道 .OverCurrentContext < / em>正在运作)
这应该是一个非常简单的代码,我不知道发生了什么。我知道我无法触及UITransitionView,这就是为什么我不知道该怎么做。
user
建议将受到高度赞赏。
致以最诚挚的问候,
答案 0 :(得分:1)
有这个回应的派对有点晚了,但我最近遇到了类似的问题。我想要呈现的模态(带有半透明的面纱)被白色的UITransitionView包含,隐藏了底层视图。我怀疑在你发出controller.present()
来调用你的模态以在某些情况下(但不知道为什么或何时)时会注入TransitionView注释
作为一种快速而肮脏的解决方法,您可以在出现之前尝试清除模态的父视图的背景。出于某种原因,一旦你出现你的模态,UITransitionView也会得到一个清晰的颜色。
extension UIView {
//This will eventually get to the UITransitionView and clear the background.
func clearHierarchyBackground() {
self.backgroundColor = .clear
if let superView = self.superview {
superview.clearHierarchyBackground()
}
}
}
let parentController = MyParentViewController()
let childController = MyModalViewController()
childController.modalPresentationStyle = .overFullScreen //.overCurrentContext should also work..
childController.view.clearHierarchyBackground()
/* The above makes your controller root view .clear
so you need to add subviews with transparency &
content as you see fit.*/
parentController.present(childController, animated:true....)