您的位置:首页 > 产品设计 > UI/UE

通过self.view获得顶端的ViewController

2015-09-07 18:07 453 查看
- (UIViewController *) containingViewController {
UIView * target = self.superview ? self.superview : self;
return (UIViewController *)[target traverseResponderChainForUIViewController];
}

- (id) traverseResponderChainForUIViewController {
id nextResponder = [self nextResponder];
BOOL isViewController = [nextResponder isKindOfClass:[UIViewController class]];
BOOL isTabBarController = [nextResponder isKindOfClass:[UITabBarController class]];
if (isViewController && !isTabBarController) {
return nextResponder;
} else if(isTabBarController){
UITabBarController *tabBarController = nextResponder;
return [tabBarController selectedViewController];
} else if ([nextResponder isKindOfClass:[UIView class]]) {
return [nextResponder traverseResponderChainForUIViewController];
} else {
return nil;
}
}


使用说明:

UIViewController *ViewController = [self.view containingViewController];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uiviewcontroller uiview