HJMyWalletDetailViewController.m 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. //
  2. // HJMyWalletDetailViewController.m
  3. // HappyJob
  4. //
  5. // Created by 张晓光 on 2019/9/6.
  6. // Copyright © 2019 Bob. All rights reserved.
  7. //
  8. #import "HJMyWalletDetailViewController.h"
  9. #import "HJMyWalletDetailCell.h"
  10. #import "HJMyWalletDataBox.h"
  11. #import "HJMyWalletDetailListAPI.h"
  12. @interface HJMyWalletDetailViewController ()
  13. <
  14. UIGestureRecognizerDelegate,
  15. UITableViewDelegate,
  16. FBAPIManagerDelegate,
  17. FBAPIManagerInterceptor
  18. >
  19. @property (nonatomic, strong) HJPageListView *tableView;
  20. @property (nonatomic, strong) HJMyWalletDetailListAPI *listAPI;
  21. @property (nonatomic, strong) HJMyWalletDataBox *dataBox;
  22. @end
  23. @implementation HJMyWalletDetailViewController
  24. #pragma mark - life cycle
  25. - (void)viewWillAppear:(BOOL)animated {
  26. [super viewWillAppear:animated];
  27. [self.navigationController setNavigationBarHidden:NO animated:animated];
  28. self.navigationController.interactivePopGestureRecognizer.delegate = self;
  29. [self hj_setupNavBar];
  30. }
  31. - (void)viewDidLoad {
  32. [super viewDidLoad];
  33. self.navigationItem.title = @"收支明细";
  34. [self initSubViews];
  35. [self.listAPI start];
  36. }
  37. #pragma mark - init
  38. - (void)initSubViews {
  39. [self.view addSubview:self.tableView];
  40. [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
  41. make.left.top.right.bottom.offset(0);
  42. }];
  43. }
  44. #pragma mark - FBAPIManagerInterceptor
  45. - (BOOL)manager:(FBBaseAPIManager *)manager shouldStartCallAPIWithParams:(NSDictionary *)params {
  46. [self.view fb_showLoading];
  47. return YES;
  48. }
  49. - (void)managerShouldFinishCallAPI:(FBBaseAPIManager *)manager {
  50. [self.view fb_dismiss];
  51. }
  52. #pragma mark - FBPageableAPIManager
  53. - (void)managerCallAPIDidSuccess:(FBBaseAPIManager *)manager {
  54. if (manager == self.listAPI)
  55. {
  56. [self.tableView managerCallAPIDidSuccess:manager];
  57. }
  58. }
  59. - (void)managerCallAPIDidFailed:(FBBaseAPIManager *)manager {
  60. id fetchData = [manager fetchDataWithBox:self.dataBox];
  61. if ([fetchData isKindOfClass:[NSString class]])
  62. {
  63. [self.view fb_showFailureWithStatus:fetchData];
  64. }
  65. if (manager == self.listAPI)
  66. {
  67. [self.tableView managerCallAPIDidFailed:manager];
  68. }
  69. }
  70. #pragma mark - UITableView代理
  71. #pragma mark - setter and getter
  72. - (HJPageListView *)tableView {
  73. if (_tableView == nil)
  74. {
  75. _tableView = [[HJPageListView alloc] init];
  76. _tableView.tableView.delegate = self;
  77. _tableView.tableView.dataSource = self.dataBox;
  78. _tableView.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  79. _tableView.APIManager = self.listAPI;
  80. _tableView.dataBox = self.dataBox;
  81. //自定义空白页
  82. // _tableView.blankView.imageView.image = [UIImage imageNamed:@"b_home_empty"];
  83. }
  84. return _tableView;
  85. }
  86. - (HJMyWalletDataBox *)dataBox {
  87. if (_dataBox == nil)
  88. {
  89. _dataBox = [[HJMyWalletDataBox alloc] init];
  90. }
  91. return _dataBox;
  92. }
  93. - (HJMyWalletDetailListAPI *)listAPI {
  94. if (_listAPI == nil)
  95. {
  96. _listAPI = [[HJMyWalletDetailListAPI alloc]init];
  97. _listAPI.APIManagerDelegate = self;
  98. _listAPI.APIManagerInterceptor = self.tableView;
  99. }
  100. return _listAPI;
  101. }
  102. /*
  103. #pragma mark - Navigation
  104. // In a storyboard-based application, you will often want to do a little preparation before navigation
  105. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  106. // Get the new view controller using [segue destinationViewController].
  107. // Pass the selected object to the new view controller.
  108. }
  109. */
  110. @end