美文网首页
iOS 在View中直接用所在的ViewController对象

iOS 在View中直接用所在的ViewController对象

作者: ShanJiJi | 来源:发表于2017-09-07 11:57 被阅读15次

在平时的开发中经常会遇到在自定义的某个View中要使用ViewController对象做一些跳转处理,通常会采用Delegate 或者 block 。现在总结一个新的方法,利用事件响应链原理来获得当前View所在的ViewController。

#import <UIKit/UIKit.h>

@interface UIView (ViewController)

- (UIViewController *)viewController;

@end

#import "UIView+ViewController.h"

@implementation UIView (ViewController)


- (UIViewController *)viewController
{
    UIResponder *next = [self nextResponder];
    
    do {
        if ([next isKindOfClass:[UIViewController class]]) {
            return (UIViewController *)next;
        }
        next = [next nextResponder];
    } while (next != nil);
    return nil;
}

@end

相关文章

网友评论

      本文标题:iOS 在View中直接用所在的ViewController对象

      本文链接:https://www.haomeiwen.com/subject/jsqijxtx.html