关闭子视图后重新加载视图

Reload a View after Closing its subView

我有一个名为 A 的 UIViewController,我正在像这样向 A 控制器添加另一个控制器

  self.AView = (self.storyboard!.instantiateViewController(withIdentifier: "BView") as? BViewController)!

  self.addChild(self.BView)

  self.BView.view.frame = CGRect(x: 0, y: self.view.frame.height - 450, width: self.view.frame.width , height: 450)
  self.view.addSubview((self.BView.view)!)
  self.view.bringSubviewToFront(self.BView.view)

我正在使用下面的函数关闭它

func closeCurrentView(){

   self.view.removeFromSuperview()
}

关闭后我需要重新加载 My Aview

我已经在我的 Aview 中添加了这个,但在关闭 BView 后没有被调用

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
}

viewWillAppear 方法仅在视图将进入视图层次结构时被调用,在这种情况下,在 BView 被移除之前 AView 已经在视图层次结构中,即使它不可见(因此当 BView 时不调用 AViewController.viewWillAppear已移除)。您有两个选择:

  1. 将 AViewController 的引用传递给 BViewController(在初始化期间或之后),以便您可以在 BViewController 中执行此操作 class:
func closeView(){
   self.view.removeFromSuperview()
   self.AViewController.view.layoutIfNeeded() // or do something else to update AView
}
  1. 移除 AViewController 中的 BView class:
func closeBView(){
   self.BViewController.view.removeFromSuperview()
   self.view.layoutIfNeeded() // or do something else to update AView
}