通过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];
相关文章推荐
- CALayer与UIView的关系
- UIView的bounds和frame区别
- uiview
- uiview生命周期
- UIView翻译 (参考)
- 规范之力:正确使用UIViewController(1)
- 规范之力:正确使用UIViewController(2)
- iOS 转变UIView到UIImage
- iOS5中UIViewController的新方法
- UIView动画
- 复用项目中的刷新加载
- initWithFrame 和 initWithCoder
- [CS193P] 第六堂課摘要及心得筆記
- UI第一天
- 棋盘
- ios实现button变换颜色并可以放大、缩小、旋转
- uiview contentViewmode
- iphone开发小记 基础知识2
- iphone开发小记 基础知识3
- [笔记]I 群聊天记录2012/03/中