ios appdelegate中获取当前显示页

Posted codemaker313

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于ios appdelegate中获取当前显示页的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中从 AppDelegate 获取数据到 ViewController

iOS - 获取当前视图控制器

具有多个视图控制器的 iOS 应用

从 AppDelegate 访问当前视图

如何从 Appdelegate 显示 UIAlertController

IOS 从 AppDelegate 中的 addMessageFromRemoteNotification 显示 UIViewController