通过UIView获取UIViewController
2013-11-14 16:53
507 查看
需求很简单,通过UIViewController.view内的任意控件获取当前UIViewController;
立马开写:
功能实现;
自豪之余,发现朋友发出新方法:
当然,他是百度的(鄙视之);
两人刚准备兴奋发现另一人发出:
当时我们就震惊了~~~
立马开写:
/** * @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;
当时我们就震惊了~~~
相关文章推荐
- 通过UIView对象获取该对象所属的UIViewController
- 如何通过UIView对象获取该对象所属的UIViewController
- 通过当前UIView获取它对应的UIViewController
- 通过UIView对象获取该对象所属的UIViewController
- 通过UIView对象获取该对象所属的UIViewController
- 通过UIView 来获取 Controller
- [iOS]通过UIView对象获取该对象所属的UIViewController
- 通过UIView 来获取 Controller
- 通过UIView 获取父UIviewConroller(通过子视图获取父控制器)
- 通过JS来判断页面控件是否获取焦点
- android 股票数据通过日K获取周K的数据 算法 源码
- 通过ApplicationContextAware获取spring容器中的bean
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- 在代码中,通过资源XML获取数组
- UIView -> image & 本地时间获取
- android 通过经纬度获取具体的地理信息
- 通过action传过来的值在option获取进行验证
- PHP下通过系统信号量加锁方式获取递增序列ID
- 通过cell的UIButton获取UITableViewCell的行数及Cell数据
- 免费!商场地图接口,通过城市ID获取商场列表