ios之寻找当前控件根控制器
1.在项目过程中,难免会遇到些奇特的场景,特此根据object-c的特性寻找根控制器或者栈顶控制器。正所谓艺多不养人,技多不压身
UIView+Addition.h
#import <UIKit/UIKit.h> @interface UIView (Addition) //声明一下寻找跟控制器的方法 - (UIViewController *)rootViewController; @end
UIView+Addition.m
#import "UIView+Addition.h" @implementation UIView (Addition) - (UIViewController *)rootViewController { //寻找下一个响应者 UIResponder *resp = [self nextResponder]; //循环判断是否为控制器 while (resp) { //如果是则返回 下面的[UIViewController class]可以替换为你自己知道的根控制器名,意思是找到你想要的这个根控制器就停下来 if ([resp isKindOfClass:[UIViewController class]]) { return (UIViewController *)resp; } //如果不是则继续寻找 resp = [resp nextResponder]; } // return nil; } @end