UIViewController+Category.m 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //
  2. // UIViewController+Category.m
  3. // 乐销
  4. //
  5. // Created by 隋林栋 on 2017/10/9.
  6. // Copyright © 2017年 ping. All rights reserved.
  7. //
  8. #import "UIViewController+Category.h"
  9. static const char key_blockBack_UIViewController = '\0';
  10. static const char key_blockWillBack_UIViewController = '\0';
  11. static const char key_requestState_UIViewController = '\0';
  12. @implementation UIViewController (Category)
  13. #pragma mark property
  14. - (void)setRequestState:(int)requestState{
  15. objc_setAssociatedObject(self, &key_requestState_UIViewController, [NSNumber numberWithInteger:requestState], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  16. }
  17. - (int)requestState{
  18. NSNumber * num = objc_getAssociatedObject(self, &key_requestState_UIViewController);
  19. if (num && [num isKindOfClass:NSNumber.class]) {
  20. return [num intValue];
  21. }
  22. return 0;
  23. }
  24. -(void)setBlockBack:(void (^)(UIViewController *))blockBack{
  25. objc_setAssociatedObject(self, &key_blockBack_UIViewController, blockBack, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  26. }
  27. - (void (^)(UIViewController *))blockBack{
  28. return objc_getAssociatedObject(self, &key_blockBack_UIViewController);
  29. }
  30. - (void)setBlockWillBack:(void (^)(UIViewController *))blockWillBack{
  31. objc_setAssociatedObject(self, &key_blockWillBack_UIViewController, blockWillBack, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  32. }
  33. - (void (^)(UIViewController *))blockWillBack{
  34. return objc_getAssociatedObject(self, &key_blockWillBack_UIViewController);
  35. }
  36. #pragma mark method
  37. /**
  38. remove all child vc
  39. */
  40. - (void)removeAllChildVC{
  41. while (self.childViewControllers.count) {
  42. UIViewController * childVC = self.childViewControllers.lastObject;
  43. [childVC.view removeFromSuperview];
  44. [childVC removeFromParentViewController];
  45. }
  46. }
  47. @end