获取当前AppDelegate 正在显示的UIViewController

来源:互联网 发布:巨拟叶螽淘宝 编辑:程序博客网 时间:2024/06/02 05:30

UIWindow+PazLabs.h (header file)

#import <UIKit/UIKit.h>@interface UIWindow (PazLabs)- (UIViewController *) visibleViewController;@end

UIWindow+PazLabs.m (implementation file)

#import "UIWindow+PazLabs.h"@implementation UIWindow (PazLabs)- (UIViewController *)visibleViewController {    UIViewController *rootViewController = self.rootViewController;    return [UIWindow getVisibleViewControllerFrom:rootViewController];}+ (UIViewController *) getVisibleViewControllerFrom:(UIViewController *) vc {    if ([vc isKindOfClass:[UINavigationController class]]) {        return [UIWindow getVisibleViewControllerFrom:[((UINavigationController *) vc) visibleViewController]];    } else if ([vc isKindOfClass:[UITabBarController class]]) {        return [UIWindow getVisibleViewControllerFrom:[((UITabBarController *) vc) selectedViewController]];    } else {        if (vc.presentedViewController) {            return [UIWindow getVisibleViewControllerFrom:vc.presentedViewController];        } else {            return vc;        }    }}@end

参考链接:http://stackoverflow.com/questions/11637709/get-the-current-displaying-uiviewcontroller-on-the-screen-in-appdelegate-m

0 0