我继承UINavigationController
并通过其didShow
委托,每当新的视图控制器被推入堆栈时调用它,我更新一个名为previousViewController
的实例变量(为了能够执行一些自定义工作。)
实例变量:
class SectionNavigationController: UINavigationController {
var previousViewController: UIViewController?
...
更新的代表:
// nav controller delegate method (did show)
func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
if currentIndex! > 0 {
previousViewController = navigationController.viewControllers[currentIndex! - 1]
}
}
因此,无论何时调用popToRootViewController
,顶视图控制器(previousViewController
)下面的视图控制器都不会因为此引用而被取消初始化。如何以{em>追加 popToRootViewController
的取消初始化方式覆盖previousViewController
?