从View上跳转到ViewController

本文介绍了一个用于Swift iOS开发的UIView扩展方法,该方法能够帮助开发者查找传递给UIView的响应控制器(UIViewController)。通过遍历UIView的响应者链,此方法找到并返回第一个UIViewController实例。
#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

 

转载于:https://www.cnblogs.com/laolitou-ping/p/7639562.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值