通过View寻找ViewController
2015-11-03 19:08
190 查看
/** * @brief 通过viewController内的view,获取Controller * * @param view subView * * @return UIViewController */ - (UIViewController *)recursionView2ViewController:(UIView *)view { __block UIViewController *viewController; __block void (^blocks)(UIView *) = nil; blocks = ^(UIView *view) { if([view.superview isKindOfClass:NSClassFromString(@"UIViewControllerWrapperView")]) { Ivar ivar = class_getInstanceVariable([UIView class], "_viewDelegate"); viewController = object_getIvar(view, ivar); } else blocks(view.superview); }; blocks(view); return viewController; }
或者
- (UIViewController *)findViewController:(UIView *)sourceView { id target=sourceView; while (target) { target = ((UIResponder *)target).nextResponder; if ([target isKindOfClass:[UIViewController class]]) { break; } } return target; }
或者
//nav为root UINavigationController UIViewController *viewController = ((AppDelegate *)[UIApplication sharedApplication].delegate).nav.visibleViewController;
相关文章推荐
- 【数据结构与算法分析】1.4 用printOut函数输出任意实数
- 欧拉函数专题
- Asp.Net MVC3 简单入门第一季(二)详解Asp.Net MVC3项目
- Xcode7.1上安装最新的Alcatraz,细节非常重要!!!
- http://blog.csdn.net/chenli522/article/details/17001823
- Swift之泛型(Generics)
- MySQL 种子重置指令
- Spring随笔6
- ThinkPHP 学习每日总结
- iOS(9) SDWebImage 里面给 UIImageView 加载图片的逻辑是什么样的
- HDU 5170 GTY's math problem
- JQUERY在线引用地址
- leetcode-Maximum Depth of Binary Tree
- LeetCode Bulls and Cows (简单题)
- Mac OS X pl2303 的驱动下载
- java处理高并发高负载类网站的优化方法
- 设计模式之原型模式(深入理解OC中的NSCopying协议以及浅拷贝、深拷贝)
- OC基础第三讲):继承 初始化方法 便利构造器
- 如何一个命令停止某个端口的服务进程
- POJ2418 Hardwood Species(二叉搜索树+字典树+MAP)