RQVideoDetailViewModel.m 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. //
  2. // RQVideoDetailViewModel.m
  3. // SDJK
  4. //
  5. // Created by 张嵘 on 2021/10/26.
  6. //
  7. #import "RQVideoDetailViewModel.h"
  8. @interface RQVideoDetailViewModel ()
  9. @property (nonatomic, readwrite, strong) RQTreeListModel *treeListModel;
  10. @property (nonatomic, readwrite, assign) NSInteger index;
  11. @property (nonatomic, readwrite, strong) NSIndexPath *indexPath;
  12. @property (nonatomic, readwrite, assign) RQHomePageSubjectType homePageSubjectType;
  13. @property (nonatomic, readwrite, strong) VideosItem *videosItem;
  14. @property (nonatomic, readwrite, copy) NSArray *currentVideoesArr;
  15. @end
  16. @implementation RQVideoDetailViewModel
  17. #pragma mark - Public Method
  18. - (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params {
  19. if (self = [super initWithServices:services params:params]) {
  20. if ([params[RQViewModelUtilKey] isKindOfClass:[RQTreeListModel class]]) {
  21. self.treeListModel = params[RQViewModelUtilKey];
  22. } else if ([params[RQViewModelUtilKey] isKindOfClass:[NSArray class]]) {
  23. self.currentVideoesArr = params[RQViewModelUtilKey];
  24. }
  25. self.index = [params[RQVideoItemIndexKey] integerValue];
  26. self.indexPath = params[RQVideoItemIndexPathKey];
  27. self.homePageSubjectType = [params[RQHomePageSubjectTypeKey] integerValue];
  28. self.videosItem = params[RQPlayVideoItemKey];
  29. }
  30. return self;
  31. }
  32. - (void)initialize {
  33. [super initialize];
  34. self.prefersNavigationBarHidden = YES;
  35. /// 配置标题
  36. [self rq_configureTitle];
  37. }
  38. #pragma mark - PrivateMethod
  39. - (void)rq_configureTitle {
  40. [[RACSignal combineLatest:@[RACObserve(self, homePageSubjectType)]
  41. reduce:^id(NSNumber *homePageSubjectType){
  42. NSString *homePageSubjectTypeStr = @"";
  43. switch (homePageSubjectType.integerValue) {
  44. case RQHomePageSubjectType_SubjectOne:
  45. homePageSubjectTypeStr = @"科目一";
  46. break;
  47. case RQHomePageSubjectType_SubjectTwo:
  48. homePageSubjectTypeStr = @"科目二";
  49. break;
  50. case RQHomePageSubjectType_SubjectThree:
  51. homePageSubjectTypeStr = @"科目三";
  52. break;
  53. case RQHomePageSubjectType_SubjectFour:
  54. homePageSubjectTypeStr = @"科目四";
  55. break;
  56. default:
  57. break;
  58. }
  59. return [NSString stringWithFormat:@"%@视频",homePageSubjectTypeStr];
  60. }] subscribeNext:^(NSString *titleStr) {
  61. self.title = titleStr;
  62. }];
  63. }
  64. @end