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

时间:2015-01-12 18:20:28

标签: ios uiviewcontroller uinavigationcontroller

我正在尝试使用委托方法

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

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

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

1 个答案:

答案 0 :(得分:6)

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

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

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