-(UIViewController *)getVisibleViewController:(UIViewController *)rootViewController{
if ([rootViewController isKindOfClass:[UINavigationController class]]) {
return [self getVisibleViewController:[(UINavigationController *)rootViewController visibleViewController]];
}else if ([rootViewController isKindOfClass:[UITabBarController class]]){
return [(UITabBarController *)rootViewController selectedViewController];
}else if (rootViewController.presentedViewController){
return [self getVisibleViewController:rootViewController.presentedViewController];
}else{
return rootViewController;
}
}
-(UIViewController*)viewController{
UIResponder *nextResponder = self;
do{
nextResponder = [nextResponder nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]])
return (UIViewController*)nextResponder;
} while (nextResponder != nil);
return nil;
}