欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-14 09:32:19
...

在平时的开发中经常会遇到在自定义的某个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