在当前控制器中重写如下两个方法便可:web
// OC - (void)willMoveToParentViewController:(nullable UIViewController *)parent NS_AVAILABLE_IOS(5_0); - (void)didMoveToParentViewController:(nullable UIViewController *)parent NS_AVAILABLE_IOS(5_0); // Swift override func willMove(toParent parent: UIViewController?) { super.willMove(toParent: parent) } override func didMove(toParent parent: UIViewController?) { super.didMove(toParent: parent) }
if (!parent) { var tmp = NSMutableArray(array: self.navigationController!.viewControllers) as! [UIViewController] var minIndex: Int = 0 for (index, vc) in tmp.enumerated() { if vc.isKind(of: SafeCenterViewController.self) { minIndex = index + 1 break } } if minIndex != 0 { tmp.removeSubrange((minIndex)..<(tmp.count - 1)) self.navigationController?.viewControllers = tmp } }
let popVC = self.navigationController?.viewControllers[2] self.navigationController?.popToViewController(popVC!, animated: true)