UIWindow+PazLabs.m 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //
  2. // UIWindow+PazLabs.m
  3. // SiBenClient
  4. //
  5. // Created by 肖雨 on 2017/9/15.
  6. // Copyright © 2017年 ShangLv. All rights reserved.
  7. //
  8. #import "UIWindow+PazLabs.h"
  9. //@implementation UIWindow_PazLabs
  10. /*
  11. // Only override drawRect: if you perform custom drawing.
  12. // An empty implementation adversely affects performance during animation.
  13. - (void)drawRect:(CGRect)rect {
  14. // Drawing code
  15. }
  16. */
  17. //@end
  18. @implementation UIWindow (PazLabs)
  19. - (UIViewController *)visibleViewController {
  20. UIViewController *rootViewController = self.rootViewController;
  21. return [UIWindow getVisibleViewControllerFrom:rootViewController];
  22. }
  23. + (UIViewController *) getVisibleViewControllerFrom:(UIViewController *) vc {
  24. if ([vc isKindOfClass:[UINavigationController class]]) {
  25. return [UIWindow getVisibleViewControllerFrom:[((UINavigationController *) vc) visibleViewController]];
  26. } else if ([vc isKindOfClass:[UITabBarController class]]) {
  27. return [UIWindow getVisibleViewControllerFrom:[((UITabBarController *) vc) selectedViewController]];
  28. } else {
  29. if (vc.presentedViewController) {
  30. return [UIWindow getVisibleViewControllerFrom:vc.presentedViewController];
  31. } else {
  32. return vc;
  33. }
  34. }
  35. }
  36. @end