如何寻找到当前ViewController?

来源:互联网 发布:mac os apache 配置 编辑:程序博客网 时间:2024/05/29 13:30

技术群小伙伴发现获取的当前VC为空,往上追溯发现window也为空。所以引起了一大波探讨?

以下给出不同的方案:


出问题的小伙伴给截的图:



以下是群里面小伙伴给的 意见:


po  下 frontView

或者 window 不是 main window

可能是键盘的window

或者 alertView 的window

弹出键盘和 alert 后都会创建一个新的 window

keyWindow  有可能不是你显示view 的window

po [window subvies]

po [window recursiveDescription]


提供的另一个方法

- (id)traverseResponderChainForFirstViewController
{
    id nextResponder = [self nextResponder];
    if ([nextResponder isKindOfClass:[UIViewController class]]) {
        return nextResponder;
    } else if ([nextResponder isKindOfClass:[UIView class]]) {
        return [nextResponder traverseResponderChainForFirstViewController];
    } else {
        return nil;
    }
}

0 0
原创粉丝点击