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;
}
网友评论