diff --git a/Tusker/Screens/Main/MainSplitViewController.swift b/Tusker/Screens/Main/MainSplitViewController.swift index d2df9c76..406d1eec 100644 --- a/Tusker/Screens/Main/MainSplitViewController.swift +++ b/Tusker/Screens/Main/MainSplitViewController.swift @@ -214,6 +214,10 @@ extension MainSplitViewController: UISplitViewControllerDelegate { if item == sidebar.selectedItem { itemNavStack = secondaryNavController.viewControllers secondaryNavController.viewControllers = [] + // Sometimes removing a VC from the viewControllers array doesn't immediately remove it's view from the hierarchy + for vc in itemNavStack { + vc.viewIfLoaded?.removeFromSuperview() + } } else { itemNavStack = navigationStacks[item] ?? [] navigationStacks.removeValue(forKey: item) @@ -339,6 +343,11 @@ extension MainSplitViewController: UISplitViewControllerDelegate { let viewControllersToMove = navController.viewControllers.dropFirst(skipFirst) navController.viewControllers.removeLast(navController.viewControllers.count - skipFirst) + // Sometimes removing a VC from the viewControllers array doesn't immediately remove it's view from the hierarchy + for vc in viewControllersToMove { + vc.viewIfLoaded?.removeFromSuperview() + } + if let prepend = prepend { navigationStacks[item] = [prepend] + viewControllersToMove } else {