获取UIViewController的几个方法
来源:互联网 发布:阿里云点击挂载不行 编辑:程序博客网 时间:2024/06/06 07:34
从UIWindow获取:
@implementation UIWindow (EZ_helper)- (UIViewController*) ez_topMostController{ UIViewController *topController = [self rootViewController]; // Getting topMost ViewController while ([topController presentedViewController])topController = [topController presentedViewController]; // Returning topMost ViewController return topController;}- (UIViewController*)ez_currentViewController;{ UIViewController *currentViewController = [self ez_topMostController]; while ([currentViewController isKindOfClass:[UINavigationController class]] && [(UINavigationController*)currentViewController topViewController]) currentViewController = [(UINavigationController*)currentViewController topViewController]; return currentViewController;}@end
从UIView获取:
@implementation UIView (EZ_Find)- (UIViewController *)ez_viewController{ UIResponder *responder = self; while ((responder = [responder nextResponder])){ if ([responder isKindOfClass: [UIViewController class]]){ return (UIViewController *)responder; } } return nil;}@end
从UIViewController获取:
@implementation UIViewController (EZ_Helper)- (UIViewController*) ez_topMostController{ UIViewController *topController = self ; // Getting topMost ViewController while ([self presentedViewController])topController = [topController presentedViewController]; // Returning topMost ViewController return topController;}- (UIViewController*)ez_currentViewController;{ UIViewController *currentViewController = [self ez_topMostController]; while ([currentViewController isKindOfClass:[UINavigationController class]] && [(UINavigationController*)currentViewController topViewController]) currentViewController = [(UINavigationController*)currentViewController topViewController]; return currentViewController;}end
获取当前view的UIViewController
@implementation UIViewController (EZ_Helper)+ (UIViewController *)ez_currentViewControllerFromcurrentView{ UIViewController *result = nil; // 1. get current window UIWindow * window = [[UIApplication sharedApplication] keyWindow]; if (window.windowLevel != UIWindowLevelNormal) { NSArray *windows = [[UIApplication sharedApplication] windows]; for(UIWindow * tmpWin in windows) { if (tmpWin.windowLevel == UIWindowLevelNormal) { window = tmpWin; break; } } } // 2. get current View Controller UIView *frontView = [[window subviews] objectAtIndex:0]; id nextResponder = [frontView nextResponder]; if ([nextResponder isKindOfClass:[UIViewController class]]) { result = nextResponder; } else { result = window.rootViewController; } return result;}end
阅读全文
0 0
- 获取UIViewController的几个方法
- UIViewController内存管理相关的几个方法
- UIViewController 的addChildViewController:(UIViewController *) 方法
- 获取UIView的UIViewController
- 获取uiview的uiviewcontroller
- 获取uiview的uiviewcontroller
- 获取当前的UIViewController
- UIViewController的init方法
- 获取UIView所属的UIViewController
- UIViewController的 dismissViewControllerAnimated:completion:方法
- UIViewController的 dismissViewControllerAnimated:completion:方法
- UIViewController的 dismissViewControllerAnimated:completion:方法
- UIViewController的 dismissViewControllerAnimated:completion:方法
- UIViewController的 dismissViewControllerAnimated:completion:方法
- UIViewController之间的通讯方法
- UIViewController的- dissmissViewControllerAnimated:completion方法
- UIViewController的 dismissViewControllerAnimated:completion:方法
- .NET获取硬盘序列号的几个方法
- swift Tips(version2.0+ xcode7.0+)
- Java NIO系列教程(六) Selector
- IDC:预定义符号
- __attribute__
- C++枚举算法之和数
- 获取UIViewController的几个方法
- 在opencv3中的机器学习算法
- python如何对dataframe下面的值进行大规模赋值
- [前端学习]最简单的九宫格各种居中
- GorocksDB和BoltDB读写性能测试
- @objc小结
- 关于GCD开发的一些事儿
- 在安装Android Studio时候出现VT-X is disabled错误
- FAS问题