获取当前视图最顶层的ViewController
+ (UIViewController *)currentViewController {
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;
}
}
}
UIViewController *currentVC = window.rootViewController;
while (currentVC.presentedViewController) {
currentVC = currentVC.presentedViewController;
}
if ([currentVC isKindOfClass:[UITabBarController class]]) {
currentVC = [(UITabBarController *)currentVC selectedViewController];
}
if ([currentVC isKindOfClass:[UINavigationController class]]) {
currentVC = [(UINavigationController *)currentVC topViewController];
}
return currentVC;
}