iPhone: cómo encontrar el controlador de vista superior

- (UIViewController*)topViewController {

    return [ self topViewControllerWithRootViewController:[UIApplication shareApplication].keyWindow.rootViewController];

}

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

    if ([rootViewController esKindOfClass:[clase UITabBarController]]) {

        UITabBarController* tabBarController = (UITabBarController*)rootViewController;

        return [ self topViewControllerWithRootViewController:tabBarController.selectedViewController];

    }

    else if ([rootViewController isKindOfClass:[clase UINavigationController]]) {

        UINavigationController *navigationController = (UINavigationController*)rootViewController;

        return [ self topViewControllerWithRootViewController:navigationController.visibleViewController];

    }

    de lo contrario si (rootViewController.presentedViewController) {

        UIViewController* presentadoViewController = rootViewController.presentedViewController;

        return [ self topViewControllerWithRootViewController:presentedViewController ];

    }

    más {

        devolver rootViewController;

    }

}

Supongo que te gusta

Origin blog.csdn.net/u013712343/article/details/132740411
Recomendado
Clasificación