RQUpdatePasswordViewController.m 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. //
  2. // RQUpdatePasswordViewController.m
  3. // YueXueChe
  4. //
  5. // Created by 张嵘 on 2019/1/14.
  6. // Copyright © 2019 RONG. All rights reserved.
  7. //
  8. #import "RQUpdatePasswordViewController.h"
  9. #import "RQPasswordView.h"
  10. @interface RQUpdatePasswordViewController ()
  11. @property (nonatomic, readwrite, strong) RQUpdatePasswordViewModel *viewModel;
  12. @property (weak, nonatomic) IBOutlet UIView *containerView;
  13. @property (weak, nonatomic) IBOutlet UIButton *sureBtn;
  14. @property (strong, readwrite, nonatomic) RQPasswordView *freshPasswordView;
  15. @end
  16. @implementation RQUpdatePasswordViewController
  17. @dynamic viewModel;
  18. - (void)viewWillAppear:(BOOL)animated{
  19. [super viewWillAppear:animated];
  20. [self.freshPasswordView.passwordTextField becomeFirstResponder];
  21. }
  22. - (void)viewDidLoad {
  23. [super viewDidLoad];
  24. /// 设置
  25. [self rq_setup];
  26. /// 子控件
  27. [self rq_setupSubViews];
  28. /// 初始化部分数据
  29. [self rq_configureData];
  30. }
  31. #pragma mark - 初始化
  32. - (void)rq_setup {
  33. @weakify(self)
  34. /// 设置contentSize
  35. [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) {
  36. make.width.mas_equalTo(RQ_SCREEN_WIDTH);
  37. make.height.mas_equalTo(RQ_SCREEN_HEIGHT);
  38. }];
  39. UIScrollView *scrollView = (UIScrollView *)self.view;
  40. scrollView.alwaysBounceVertical = YES;
  41. scrollView.showsHorizontalScrollIndicator = NO;
  42. scrollView.showsVerticalScrollIndicator = NO;
  43. /// 适配 iOS 11
  44. RQAdjustsScrollViewInsets_Never(scrollView);
  45. }
  46. #pragma mark - 设置子控件
  47. - (void)rq_setupSubViews {
  48. @weakify(self)
  49. /// 新密码
  50. RQPasswordView *freshPasswordView = [RQPasswordView passwordView];
  51. self.freshPasswordView = freshPasswordView;
  52. [self.containerView addSubview:freshPasswordView];
  53. /// 布局
  54. [freshPasswordView mas_makeConstraints:^(MASConstraintMaker *make) {
  55. @strongify(self)
  56. make.top.mas_equalTo(self.containerView.mas_top).mas_offset((RQ_APPLICATION_NAV_BAR_HEIGHT + RQ_APPLICATION_STATUS_BAR_HEIGHT));
  57. make.left.mas_equalTo(self.containerView).mas_offset(16.f);
  58. make.right.mas_equalTo(self.containerView).mas_offset(-16.f);
  59. make.height.mas_offset(64.f);
  60. }];
  61. [self.sureBtn mas_remakeConstraints:^(MASConstraintMaker *make) {
  62. make.top.mas_equalTo(freshPasswordView.mas_bottom).mas_offset(48.f);
  63. }];
  64. }
  65. #pragma mark - 初始化部分数据
  66. - (void)rq_configureData {
  67. };
  68. #pragma mark - Override
  69. - (void)bindViewModel {
  70. [super bindViewModel];
  71. RAC(self.viewModel , freshPassword) = [RACSignal merge:@[RACObserve(self.freshPasswordView.passwordTextField, text),self.freshPasswordView.passwordTextField.rac_textSignal]];
  72. RAC(self.sureBtn , enabled) = self.viewModel.validSureSignal;
  73. }
  74. - (IBAction)sureBtnDidClicked:(id)sender {
  75. [self.viewModel.sureCommand execute:nil];
  76. }
  77. @end