iOS-通过消息响应者链找到UIView所在的UIViewController

来源:互联网 发布:opera 10.10 linux 编辑:程序博客网 时间:2024/05/16 07:45
@interface UIView (FirstViewController)

- (UIViewController *) firstViewController;
- (id) traverseResponderChainForUIViewController;

@end

@implementation UIView (FirstViewController)

- (UIViewController *) firstViewController {
    // convenience function for casting and to "mask" the recursive function
    return (UIViewController *)[self traverseResponderChainForUIViewController];
}

- (id) traverseResponderChainForUIViewController {
    id nextResponder = [self nextResponder];
    if ([nextResponder isKindOfClass:[UIViewController class]]) {
        return nextResponder;
    } else if ([nextResponder isKindOfClass:[UIView class]]) {
        return [nextResponder traverseResponderChainForUIViewController];
    } else {
        return nil;
    }
}
0 0
原创粉丝点击