美文网首页iOS-VendorIOS
iOS 获取当前正在显示的ViewController

iOS 获取当前正在显示的ViewController

作者: 丶绅士丿丨丨 | 来源:发表于2015-10-15 17:22 被阅读461次

//获取当前屏幕显示的ViewController

  • (UIViewController *)getCurrentVC
    {
    UIViewController *result = nil;
    //找到当前显示的View
    UIWindow * window = [[UIApplication sharedApplication] keyWindow];
    if (window.windowLevel != UIWindowLevelNormal)
    {
    NSArray *windows = [[UIApplication sharedApplication] windows];
    for(UIWindow * tmpWin in windows)
    {
    if (tmpWin.windowLevel == UIWindowLevelNormal)
    {
    window = tmpWin;
    break;
    }
    }
    }
    //获取View的ViewController
    UIView *frontView = [[window subviews] objectAtIndex:0];
    id nextResponder = [frontView nextResponder];

    if ([nextResponder isKindOfClass:[UIViewController class]])
    result = nextResponder;
    else
    result = window.rootViewController;

    return result;
    }

我们在非视图类中想要随时展示一个view时,需要将被展示的view加到当前view的子视图,或用当前view presentViewController,或pushViewContrller,这些操作都需要获取当前正在显示的ViewController。

相关文章

网友评论

    本文标题:iOS 获取当前正在显示的ViewController

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