UIView+FindUIViewController.m 928 B

123456789101112131415161718192021222324252627282930313233343536
  1. //
  2. // UIView+FindUIViewController.m
  3. // raynokorea
  4. //
  5. // Created by Dev.swing on 2016. 2. 19..
  6. // Copyright © 2016년 RaynoKorea. All rights reserved.
  7. //
  8. #import "UIView+FindUIViewController.h"
  9. @implementation UIView (FindUIViewController)
  10. - (UIViewController *) firstAvailableUIViewController {
  11. // convenience function for casting and to "mask" the recursive function
  12. return (UIViewController *)[self traverseResponderChainForUIViewController];
  13. }
  14. - (id) traverseResponderChainForUIViewController {
  15. id nextResponder = [self nextResponder];
  16. NSLog(@"next responder : %@", nextResponder) ;
  17. if ([nextResponder isKindOfClass:[UIViewController class]]) {
  18. return nextResponder;
  19. } else if ([nextResponder isKindOfClass:[UIView class]]) {
  20. return [nextResponder traverseResponderChainForUIViewController];
  21. } else {
  22. return nil;
  23. }
  24. }
  25. @end