標籤:nbsp window tab UI orm break 顯示 ati gpo
//擷取當前螢幕顯示的viewcontroller - (UIViewController *)getCurrentVC { UIViewController *result = nil; 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; } } } UIView *frontView = [[window subviews] objectAtIndex:0]; id nextResponder = [frontView nextResponder]; if ([nextResponder isKindOfClass:[UIViewController class]]) result = nextResponder; else result = window.rootViewController; return result; }
2.擷取當前螢幕中present出來的viewcontroller。- (UIViewController *)getPresentedViewController { UIViewController *appRootVC = [UIApplication sharedApplication].keyWindow.rootViewController; UIViewController *topVC = appRootVC; if (topVC.presentedViewController) { topVC = topVC.presentedViewController; } return topVC; }
123456789 |
func rootViewCon () - > UIViewController { var topVC = UIApplication . shared . keyWindow ?. rootViewController while topVC ?. presentedViewController != nil { topVC = topVC ?. presentedViewController ! } return topVC ! } |
iOS 擷取當前正在顯示的ViewController