从View上跳转到ViewController

#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

 

posted @ 2017-10-09 08:40  朝阳向日葵  阅读(466)  评论(0编辑  收藏  举报