本文将采用两种方法来获取当前显示的视图控制器
第一种:实现UIView的扩展类,可以直接用view.viewController方法。
#import "UIView+UIViewController.h"
@implementation UIView (UIViewController)
- (UIViewController *)viewController{
UIResponder *next = self.nextResponder;
do {
//代表取到了控制器对象
if ([next isKindOfClass:[UIViewController class]]) {
return (UIViewController *)next;
break;
}
next = next.nextResponder;
} while (next != nil);
return nil;
}
@end
第二种:根据当前的视图控制器类型进行多种判断
//获取当前页面控制器
+ (UIViewController *)getCurrentViewController{
UIWindow* window = [[[UIApplication sharedApplication] delegate] window];
NSAssert(window, @"The window is empty");
UIViewController *viewController = window.rootViewController;
if ([viewCont