1、获取当前所展示的控制器:
//需要获取到显示在最上面的viewController - (UIViewController *)theTopviewControler{ //获取根控制器 UIViewController *rootVC = [[UIApplication sharedApplication].delegate window].rootViewController; UIViewController *parent = rootVC; //遍历 如果是presentViewController while ((parent = rootVC.presentedViewController) != nil ) { rootVC = parent; } while ([rootVC isKindOfClass:[UINavigationController class]]) { rootVC = [(UINavigationController *)rootVC topViewController]; } return rootVC; }
2.找到当前视图的父视图控制器
- (UIViewController *)viewController { for(UIView* next = [self superview]; next; next = next.superview) { UIResponder*nextResponder = [next nextResponder]; if ([nextResponder isKindOfClass:[UIViewController class]]) { return(UIViewController*)nextResponder; } } return nil; }