美文网首页
IOS 获取当前控制器

IOS 获取当前控制器

作者: 透支未来 | 来源:发表于2018-03-15 09:20 被阅读28次

//在basicViewControler 的viewDidAppear 调用请求就可以了
不需要获取驶入控制器
calss name 就是当前vc的名字

- (UIViewController *)visibleViewControllerIfExist {
    
    if (self.presentedViewController) {
        return [self.presentedViewController visibleViewControllerIfExist];
    }
    
    if ([self isKindOfClass:[UINavigationController class]]) {
        return [((UINavigationController *)self).visibleViewController visibleViewControllerIfExist];
    }
    
    if ([self isKindOfClass:[UITabBarController class]]) {
        return [((UITabBarController *)self).selectedViewController visibleViewControllerIfExist];
    }
    
    if ([self isViewLoaded] && self.view.window) {
        return self;
    } else {
        NSLog(@"DGVisibleViewControllerIfExist:,找不到可见的viewController。self = %@, self.view.window = %@", self, self.view.window);
        return nil;
    }
}
+ (nullable UIViewController *)currentVisibleViewController{
    UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController;
    UIViewController *visibleViewController = [rootViewController visibleViewControllerIfExist];
    return visibleViewController;
}

相关文章

网友评论

      本文标题:IOS 获取当前控制器

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