获取当前视图最顶层的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;
}