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

Ios UINavigationController-导航回根视图控制器时检测,ios,uiviewcontroller,uinavigationcontroller,Ios,Uiviewcontroller,Uinavigationcontroller,我试图通过使用委托方法来实现这一点 - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 但如何确定viewController是否为根视图控制器?似乎topViewController只有一个方法,这不是我想要的 或者,是否有更好的方

我试图通过使用委托方法来实现这一点

- (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
    }
}
检查viewController是否与导航堆栈中的第一个view controller相同:

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

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