ios appdelegate中获取当前显示页

ios appdelegate中获取当前显示页

网上有很多种方法,但是都不好使,找到了这个好使的,和大家分享下。

 1 -(UIViewController *)currentViewController
 2 {
 3     UIViewController * currVC = nil;
 4     UIViewController * Rootvc = self.window.rootViewController ;
 5     do {
 6         if ([Rootvc isKindOfClass:[UINavigationController class]]) {
 7             UINavigationController * nav = (UINavigationController *)Rootvc;
 8             UIViewController * v = [nav.viewControllers lastObject];
 9             currVC = v;
10             Rootvc = v.presentedViewController;
11             continue;
12         }else if([Rootvc isKindOfClass:[UITabBarController class]]){
13             UITabBarController * tabVC = (UITabBarController *)Rootvc;
14             currVC = tabVC;
15             Rootvc = [tabVC.viewControllers objectAtIndex:tabVC.selectedIndex];
16             continue;
17         }
18 //        else if ([Rootvc isKindOfClass:[XXXCustom class]]){
19 //            XXXCustom * tabVC = (XXXCustom *)Rootvc;
20 //            currVC = tabVC;
21 //            Rootvc = tabVC.selectedViewController;
22 //            continue;
23 //        }
24     } while (Rootvc!=nil);
25     
26     
27     return currVC;
28 }
原文地址:https://www.cnblogs.com/codemakerhj/p/5610538.html