LoginSettingViewController.m 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. //
  2. // LoginSettingViewController.m
  3. // RA Image
  4. //
  5. // Created by Jack on 2017/4/27.
  6. // Copyright © 2017年 USAI. All rights reserved.
  7. //
  8. #import "LoginSettingViewController.h"
  9. #import "ScannerViewController.h"
  10. #import "RAQRCodeScannerViewController.h"
  11. @interface LoginSettingViewController ()<UITextFieldDelegate>
  12. @property (strong, nonatomic) IBOutlet UITextField *nameTextField;
  13. @property (strong, nonatomic) IBOutlet UITextField *internalTextField;
  14. @property (nonatomic,copy) NSString *checkedAddress;
  15. @end
  16. @implementation LoginSettingViewController
  17. - (void)viewDidLoad {
  18. [super viewDidLoad];
  19. // Do any additional setup after loading the view.
  20. UIView *v = [UIView new];
  21. [self.view insertSubview:v atIndex:0];
  22. self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(doneItemClick:)];
  23. self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Scan" style:UIBarButtonItemStylePlain target:self action:@selector(scanItemClick:)];
  24. [self loadAddress];
  25. [self registListenKeyboard];
  26. }
  27. - (void)didReceiveMemoryWarning {
  28. [super didReceiveMemoryWarning];
  29. // Dispose of any resources that can be recreated.
  30. }
  31. - (void)loadAddress {
  32. NSDictionary *addressDic = [self userDefaultsValue:kScanAddress];
  33. if (addressDic) {
  34. NSString* ia=addressDic[@"internalAddress"];
  35. NSString* ea=addressDic[@"externalAddress"];
  36. NSString* sa=addressDic[@"serverAddress"];
  37. if(sa.length==0)
  38. {
  39. if(ea.length>0)
  40. sa=ea;
  41. else if(ia.length>0)
  42. sa=ia;
  43. }
  44. self.internalTextField.text = sa;
  45. self.nameTextField.text = [addressDic objectForKey:@"name"];
  46. // NSUInteger selectedIndex = [[addressDic objectForKey:@"selectedIndex"] integerValue];
  47. // switch (selectedIndex) {
  48. // case 0:
  49. // case 1: {
  50. // [self internalCheckBtnClick:self.internalCheckBtn];
  51. // }
  52. // break;
  53. // case 2: {
  54. // [self externalCheckBtnClick:self.externalCheckBtn];
  55. // }
  56. // break;
  57. //
  58. // default:
  59. // break;
  60. // }
  61. } else {
  62. // [self internalCheckBtnClick:self.internalCheckBtn];
  63. }
  64. }
  65. #pragma mark - Button Click
  66. - (void)doneItemClick:(UIBarButtonItem *)sender {
  67. self.checkedAddress = nil;
  68. NSUInteger selectedIndex = 1;
  69. self.checkedAddress = self.internalTextField.text;
  70. // if (self.internalCheckBtn.selected) {
  71. // self.checkedAddress = self.internalTextField.text;
  72. // selectedIndex = 1;
  73. // }
  74. // if (self.externalCheckBtn.selected) {
  75. // self.checkedAddress = self.externalTextField.text;
  76. // selectedIndex = 2;
  77. // }
  78. if (self.returnValue) {
  79. self.returnValue(self.checkedAddress);
  80. }
  81. __weak typeof(self) weakself = self;
  82. [self.navigationController dismissViewControllerAnimated:YES completion:^{
  83. if (weakself.checkedAddress.length) {
  84. // 保存信息
  85. NSString *name = weakself.nameTextField.text;
  86. NSString *internalAddr = weakself.internalTextField.text;
  87. // NSString *externalAddr = weakself.externalTextField.text;
  88. NSMutableDictionary *addressDic = [NSMutableDictionary dictionary];
  89. if (internalAddr.length) {
  90. [addressDic setObject:internalAddr forKey:@"serverAddress"];
  91. }
  92. // if (externalAddr.length) {
  93. // [addressDic setObject:externalAddr forKey:@"externalAddress"];
  94. // }
  95. if (name.length) {
  96. [addressDic setObject:name forKey:@"name"];
  97. }
  98. [addressDic setObject:@(selectedIndex) forKey:@"selectedIndex"];
  99. [weakself setUserDefaultsValue:addressDic forKey:kScanAddress];
  100. }
  101. }];
  102. }
  103. - (void)scanItemClick:(UIBarButtonItem *)sender {
  104. __weak typeof(self) weakself = self;
  105. // ScannerViewController *scannerVC = [[UIStoryboard storyboardWithName:@"cam_scan" bundle:nil] instantiateViewControllerWithIdentifier:@"NewScannerViewController"];
  106. // scannerVC.returnCode = ^(NSString *code) {
  107. // // 扫描成功保存扫描值
  108. // if (weakself) {
  109. // __strong typeof(weakself) strongSelf = weakself;
  110. // [strongSelf processScanResult:code];
  111. // }
  112. // };
  113. // [self presentViewController:scannerVC animated:YES completion:nil];
  114. RAQRCodeScannerViewController *scannerVC = [RAQRCodeScannerViewController viewControllerFromStoryboard];
  115. scannerVC.QRCodeViewControllerDidCompletion = ^(RAQRCodeScannerViewController *qrcodeViewController, NSString *value) {
  116. if (weakself) {
  117. __strong typeof(weakself) strongSelf = weakself;
  118. [strongSelf processScanResult:value];
  119. }
  120. [qrcodeViewController dismissViewControllerAnimated:YES completion:nil];
  121. };
  122. scannerVC.QRCodeViewControllerDidCanceled = ^(RAQRCodeScannerViewController *qrcodeViewController) {
  123. [qrcodeViewController dismissViewControllerAnimated:YES completion:nil];
  124. };
  125. [self presentViewController:scannerVC animated:YES completion:nil];
  126. }
  127. //- (IBAction)internalCheckBtnClick:(UIButton *)sender {
  128. // sender.selected = !sender.selected;
  129. // if (sender.selected) self.externalCheckBtn.selected = NO;
  130. //}
  131. //
  132. //- (IBAction)externalCheckBtnClick:(UIButton *)sender {
  133. // sender.selected = !sender.selected;
  134. // if (sender.selected) self.internalCheckBtn.selected = NO;
  135. //}
  136. #pragma mark - TextField Delegate
  137. - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
  138. self.currentFirstResponder = textField;
  139. return YES;
  140. }
  141. - (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
  142. return YES;
  143. }
  144. #pragma mark - Private
  145. - (void)processScanResult:(NSString *)result {
  146. if (result.length) {
  147. NSArray *dataArr = [result componentsSeparatedByString:@";"];
  148. if (dataArr.count == 3) {
  149. NSString *name = [dataArr objectAtIndex:0];
  150. NSString *internalAddr = [dataArr objectAtIndex:2];
  151. // NSString *externalAddr = [dataArr objectAtIndex:2];
  152. self.nameTextField.text = name;
  153. self.internalTextField.text = internalAddr;
  154. // strongself.externalTextField.text = externalAddr;
  155. }
  156. else if (dataArr.count == 2) {
  157. NSString *name = [dataArr objectAtIndex:0];
  158. NSString *internalAddr = [dataArr objectAtIndex:1];
  159. // NSString *externalAddr = [dataArr objectAtIndex:2];
  160. self.nameTextField.text = name;
  161. self.internalTextField.text = internalAddr;
  162. // strongself.externalTextField.text = externalAddr;
  163. }
  164. else {
  165. [RAUtils alert_view:@"Wrong QR-CODE?" title:@"Can not setup server"];
  166. // strongself.nameTextField.text = nil;
  167. // strongself.internalTextField.text = [dataArr firstObject];
  168. // strongself.externalTextField.text = nil;
  169. }
  170. }
  171. }
  172. @end