UINavigationController - 检测何时导航回根视图控制器

UINavigationController - detect when navigated back to root view controller

我正在尝试使用委托方法来做到这一点

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

但是我如何确定 viewController 是否是根视图控制器? topViewController好像只有一个方法,不是我想要的

或者是否有更好的方法来确定我何时通过按后退按钮导航回导航控制器的根目录?

检查 viewController 是否与导航堆栈中的第一个视图控制器相同:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    UIViewController *root = navigationController.viewControllers[0];

    if (viewController == root) {
        // moving to the root controller
    }
}