使用 xcode 调试视图层次结构时,将新的 rootViewController 分配给 window 不会从视图层次结构中删除当前
assigning new rootViewController to window doesn't remove current from view Hierarchy when debugging view hierarchy using xcode
分配新的根视图控制器时未删除旧的根视图控制器
我想从头重新加载应用程序,但我注意到旧的根视图控制器没有从视图层次结构中删除
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 中的已知问题
你可以在这里看到Detailed Description
分配新的根视图控制器时未删除旧的根视图控制器
我想从头重新加载应用程序,但我注意到旧的根视图控制器没有从视图层次结构中删除
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 中的已知问题 你可以在这里看到Detailed Description