iPhone - 一番上のビューコントローラーを見つける方法

- (UIViewController*)topViewController {

    return [ self topViewControllerWithRootViewController:[UIApplicationsharedApplication].keyWindow.rootViewController];

}

- (UIViewController*)topViewControllerWithRootViewController:(UIViewController*)rootViewController {

    if ([rootViewController isKindOfClass:[UITabBarController クラス]]) {

        UITabBarController* tabBarController = (UITabBarController*)rootViewController;

        return [ self topViewControllerWithRootViewController:tabBarController.selectedViewController];

    }

    else if ([rootViewController isKindOfClass:[UINavigationController クラス]]) {

        UINavigationController *navigationController = (UINavigationController*)rootViewController;

        return [ self topViewControllerWithRootViewController:navigationController.visibleViewController];

    }

    else if (rootViewController.presentedViewController) {

        UIViewController* presentViewController = rootViewController.presentedViewController;

        return [ self topViewControllerWithRootViewController:presentedViewController];

    }

    それ以外の場合{

        rootViewControllerを返します

    }

}

おすすめ

転載: blog.csdn.net/u013712343/article/details/132740411
おすすめ