UIViewController+VTMagic.m 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. //
  2. // UIViewController+VTMagic.m
  3. // VTMagic
  4. //
  5. // Created by tianzhuo on 15/7/9.
  6. // Copyright (c) 2015年 tianzhuo. All rights reserved.
  7. //
  8. #import "UIViewController+VTMagic.h"
  9. #import <objc/runtime.h>
  10. #import "VTMagicView.h"
  11. static const void *kVTReuseIdentifier = &kVTReuseIdentifier;
  12. @implementation UIViewController (VTMagic)
  13. #pragma mark - accessor methods
  14. - (void)setReuseIdentifier:(NSString *)reuseIdentifier {
  15. objc_setAssociatedObject(self, kVTReuseIdentifier, reuseIdentifier, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  16. }
  17. - (NSString *)reuseIdentifier {
  18. return objc_getAssociatedObject(self, kVTReuseIdentifier);
  19. }
  20. - (UIViewController<VTMagicProtocol> *)magicController {
  21. UIViewController *viewController = self.parentViewController;
  22. while (viewController) {
  23. if ([viewController conformsToProtocol:@protocol(VTMagicProtocol)]) break;
  24. viewController = viewController.parentViewController;
  25. }
  26. return (UIViewController<VTMagicProtocol> *)viewController;
  27. }
  28. - (NSInteger)vtm_pageIndex {
  29. return [self.magicController.magicView pageIndexForViewController:self];
  30. }
  31. @end