#import <UIKit/UIKit.h>
@interface UIView (Responser)
/**
view的第一个响应控制器
@return view的第一个响应控制器
*/
- (UIViewController *)viewController;
@end
#import "UIView+Responser.h"
@implementation UIView (Responser)
/**
view的第一个响应控制器
@return view的第一个响应控制器
*/
- (UIViewController *)viewController
{
UIResponder *nextResponder = [self nextResponder]; //获取当前uiview的下一个事件响应者
do {
if ([nextResponder isKindOfClass:[UIViewController class]]) { //如果当前的事件响应者具备push方法,也就是属于
return (UIViewController *)nextResponder; //UIViewController,返回UIViewController
}
nextResponder = [nextResponder nextResponder]; //否则一直寻找下一个响应者
} while (nextResponder);
return nil;
}
@end