iOS 獲取當前正在顯示的ViewController
阿新 • • 發佈:2018-03-12
cells 當前 tro 顯示 log sar adding pro ==
//獲取當前屏幕顯示的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; }
1 2 3 4 5 6 7 8 9 |
func rootViewCon () - > UIViewController {
var topVC = UIApplication . shared . keyWindow ?. rootViewController
while topVC ?. presentedViewController != nil {
topVC = topVC ?. presentedViewController !
}
return topVC !
}
|
iOS 獲取當前正在顯示的ViewController