获取 当前显示的 UIViewController
Posted 沈红榜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取 当前显示的 UIViewController相关的知识,希望对你有一定的参考价值。
UIViewController * findBestVC(UIViewController *vc) { if (vc.presentedViewController) { return findBestVC(vc.presentedViewController); } else if ([vc isKindOfClass:[UISplitViewController class]]) { UISplitViewController *sp = (UISplitViewController *)vc; return sp.viewControllers.count > 0 ? findBestVC(sp.viewControllers.lastObject) : vc; } else if ([vc isKindOfClass:[UINavigationController class]]) { UINavigationController *na = (UINavigationController *)vc; return na.viewControllers.count > 0 ? findBestVC(na.topViewController) : vc; } else if ([vc isKindOfClass:[UITabBarController class]]) { UITabBarController *ta = (UITabBarController *)vc; return ta.viewControllers.count > 0 ? findBestVC(ta.selectedViewController) : vc; } return vc; } UIViewController * currentVC() { UIViewController *rootVC = [UIApplication sharedApplication].keyWindow.rootViewController; return findBestVC(rootVC); }
只需要调用
UIViewController *VC = currentVC();
以上是关于获取 当前显示的 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章