跳转VC 处理优化

2020-05-06  本文已影响0人  失忆的程序员

/**

获取当前的viewController

@return viewController

*/

- (UIViewController *)on_topViewController

{

    UIViewController *resultVC;

    resultVC = [self _topViewController:[[UIApplication sharedApplication].keyWindow rootViewController]];

    while (resultVC.presentedViewController)

{

        resultVC = [self _topViewController:resultVC.presentedViewController];

    }

    return resultVC;

}

- (UIViewController *)_topViewController:(UIViewController *)vc

{

    if ([vc isKindOfClass:[UINavigationController class]])

{

        return [self _topViewController:[(UINavigationController *)vc topViewController]];

    } else if ([vc isKindOfClass:[UITabBarController class]]) {

        return [self _topViewController:[(UITabBarController *)vc selectedViewController]];

    } else {

        return vc;

    }

    return nil;

}

// 使用

[[self on_topViewController] presentViewController:<#name#> animated:YES completion:nil];

上一篇 下一篇

猜你喜欢

热点阅读