使用 xcode 调试视图层次结构时,将新的 rootViewController 分配给窗口不会从视图层次结构中删除当前



分配新的根视图控制器时未删除旧的根视图控制器

我想从头开始重新加载应用程序,但我注意到旧的根视图控制器没有从视图层次结构中删除

private func reset() {
    guard let window = UIApplication.shared.delegate?.window
        else { return }
    window?.rootViewController = UIStoryboard.init(name: "Main", bundle: nil).instantiateInitialViewController()
    UIView.transition(with: window!, duration: 2, options: .transitionCrossDissolve, animations: {
    }, completion: nil)
}

在分配新的根视图控制器之前,可以尝试删除子视图和根视图

       for (UIView* subView in self.window.rootViewController.view.subviews) 
      {
          [subView removeFromSuperview];
      }
      [self.window.rootViewController.view removeFromSuperview];

这显然是iOS中的一个已知问题您可以在此处查看详细说明

最新更新