复制粘贴iOS开发

iOS获取当前显示的试图控制器

2016-11-09  本文已影响1210人  酷哥不回头看爆炸

参数传入导航试图控制器或者UITabBarController self.window.rootViewController 也可。

+ (UIViewController *)topViewControllerWithRootViewController:(UIViewController*)rootViewController
{
    if ([rootViewController isKindOfClass:[UITabBarController class]]) {
        UITabBarController *tabBarController = (UITabBarController *)rootViewController;
        return [self topViewControllerWithRootViewController:tabBarController.selectedViewController];
    } else if ([rootViewController isKindOfClass:[UINavigationController class]]) {
        UINavigationController* navigationController = (UINavigationController*)rootViewController;
        return [self topViewControllerWithRootViewController:navigationController.visibleViewController];
    } else if (rootViewController.presentedViewController) {
        UIViewController* presentedViewController = rootViewController.presentedViewController;
        return [self topViewControllerWithRootViewController:presentedViewController];
    } else {
        return rootViewController;
    }
}

另一种方法

ios收到推送时视图跳转的处理 -- 获取当前视图控制器

上一篇 下一篇

猜你喜欢

热点阅读