iOS 获取当前页面

来源:互联网 发布:婆婆定期揍儿媳 知乎 编辑:程序博客网 时间:2024/06/18 12:28

扩展系统单例,方便使用

.h 文件

#import <UIKit/UIKit.h>@interface UIApplication (currentCtrl)/** 获取当前页面 @return 当前页面 */-(UIViewController*)currentViewController;@end

.m 文件

#import "UIApplication+currentCtrl.h"@implementation UIApplication (currentCtrl)-(UIViewController*) currentViewController {    UIViewController* viewController = [UIApplication sharedApplication].keyWindow.rootViewController;    return [self findBestViewController:viewController];}-(UIViewController*) findBestViewController:(UIViewController*)vc {    if (vc.presentedViewController) {        // Return presented view controller        return [self findBestViewController:vc.presentedViewController];    } else if ([vc isKindOfClass:[UISplitViewController class]]) {        // Return right hand side        UISplitViewController* svc = (UISplitViewController*) vc;        if (svc.viewControllers.count > 0)            return [self findBestViewController:svc.viewControllers.lastObject];        else            return vc;    } else if ([vc isKindOfClass:[UINavigationController class]]) {        // Return top view        UINavigationController* svc = (UINavigationController*) vc;        if (svc.viewControllers.count > 0)            return [self findBestViewController:svc.topViewController];        else            return vc;    } else if ([vc isKindOfClass:[UITabBarController class]]) {        // Return visible view        UITabBarController* svc = (UITabBarController*) vc;        if (svc.viewControllers.count > 0)            return [self findBestViewController:svc.selectedViewController];        else            return vc;    } else {        // Unknown view controller type, return last child view controller        return vc;    }}@end

文件地址

原创粉丝点击