iOS 获取当前展示的页面
- - (UIViewController *)getCurrentVC
- {
- UIViewController *result = nil;
- UIWindow * window = [[UIApplication sharedApplication] keyWindow];
- if (window.windowLevel != UIWindowLevelNormal)
- {
- NSArray *windows = [[UIApplication sharedApplication] windows];
- for(UIWindow * tmpWin in windows)
- {
- if (tmpWin.windowLevel == UIWindowLevelNormal)
- {
- window = tmpWin;
- break;
- }
- }
- }
- UIView *frontView = [[window subviews] objectAtIndex:0];
- id nextResponder = [frontView nextResponder];
- if ([nextResponder isKindOfClass:[UIViewController class]])
- result = nextResponder;
- else
- result = window.rootViewController;
- return result;
- }
- - (UIViewController *)getPresentedViewController
- {
- UIViewController *appRootVC = [UIApplication sharedApplication].keyWindow.rootViewController;
- UIViewController *topVC = appRootVC;
- if (topVC.presentedViewController) {
- topVC = topVC.presentedViewController;
- }
- return topVC;
- }
- 如果是在AppDelegate中
-
如果是用
UINavigationController
来组织页面结构的话可以使用:((UINavigationController*)appDelegate.window.rootViewController).visibleViewController;
如果是用
UITabBarController
来组织页面结构的话:((UITabBarController*)appDelegate.window.rootViewController).selectedViewController;