我有一个主ViewController,通过使用addChild:Vc
可以呈现与其他视图控制器(主要是表视图)不同的视图,我可以显示和删除子视图,但是问题在于它是视图层次结构,所以视图层将彼此重叠,每个子视图都有一个按钮,该按钮将关闭自身并在视图层次结构中重新呈现前一个视图。完全类似于导航栏的后退按钮。
到目前为止,我所做的是一个UIViewController扩展,它是:
func addChildVC(_ child: UIViewController,
centerWith center: CGPoint? = CGPoint(x: 0.0, y: 0.0),
insertInView insertIn: UIView? = nil,
transition: UIView.AnimationOptions? = [],
completion: ((Bool) -> Void)? = nil)
{
self.addChild(child)
if let center = center
{
child.view.center = center
}
if let insertIn = insertIn
{
insertIn.insertSubview(child.view, aboveSubview: insertIn.self)
} else {
self.view.addSubview(child.view)
}
child.didMove(toParent: self)
}
func removeChildVC()
{
willMove(toParent: nil)
view.removeFromSuperview()
removeFromParent()
}