Advertisement
Guest User

Untitled

a guest
Apr 1st, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.54 KB | None | 0 0
  1. //-------------------------------------------------------------------------------------------------------------------------------------------------
  2. @interface RegisterView()
  3.  
  4. @property (strong, nonatomic) IBOutlet UITableViewCell *cellName;
  5. @property (strong, nonatomic) IBOutlet UITableViewCell *cellEmail;
  6. @property (strong, nonatomic) IBOutlet UITableViewCell *cellPassword;
  7. @property (strong, nonatomic) IBOutlet UITableViewCell *cellButton;
  8. @property (strong, nonatomic) IBOutlet UITableViewCell *cellPhone;
  9. @property (strong, nonatomic) IBOutlet UITableViewCell *cellFName;
  10. @property (strong, nonatomic) IBOutlet UITableViewCell *cellLName;
  11. @property (strong, nonatomic) IBOutlet UITextField *fieldName;
  12. @property (strong, nonatomic) IBOutlet UITextField *fieldEmail;
  13. @property (strong, nonatomic) IBOutlet UITextField *fieldPassword;
  14. @property (strong, nonatomic) IBOutlet UITextField *fieldPhone;
  15. @property (strong, nonatomic) IBOutlet UITextField *fieldFName;
  16. @property (strong, nonatomic) IBOutlet UITextField *fieldLName;
  17.  
  18. @end
  19. //-------------------------------------------------------------------------------------------------------------------------------------------------
  20.  
  21. @implementation RegisterView
  22.  
  23. @synthesize cellName, cellEmail, cellPassword, cellButton, cellPhone, cellLName, cellFName;
  24. @synthesize fieldName, fieldEmail, fieldPassword, fieldPhone, fieldLName,fieldFName;
  25.  
  26. //-------------------------------------------------------------------------------------------------------------------------------------------------
  27. - (void)viewDidLoad
  28. //-------------------------------------------------------------------------------------------------------------------------------------------------
  29. {
  30. [super viewDidLoad];
  31. self.title = @"Register";
  32.  
  33. //UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"giberWallpaper.png"]];
  34. //self.tableView.backgroundColor = background;
  35.  
  36. self.navigationController.navigationBar.tintColor= [UIColor colorWithRed:(255/256.0) green:(128/256.0) blue:(0/256.0) alpha:(1.0)];
  37. //---------------------------------------------------------------------------------------------------------------------------------------------
  38. UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
  39. [self.tableView addGestureRecognizer:gestureRecognizer];
  40. gestureRecognizer.cancelsTouchesInView = NO;
  41. }
  42.  
  43. //-------------------------------------------------------------------------------------------------------------------------------------------------
  44. - (void)viewDidAppear:(BOOL)animated
  45. //-------------------------------------------------------------------------------------------------------------------------------------------------
  46. {
  47. [super viewDidAppear:animated];
  48. [fieldName becomeFirstResponder];
  49. }
  50.  
  51. //-------------------------------------------------------------------------------------------------------------------------------------------------
  52. - (void)dismissKeyboard
  53. //-------------------------------------------------------------------------------------------------------------------------------------------------
  54. {
  55. [self.view endEditing:YES];
  56. }
  57.  
  58. #pragma mark - User actions
  59.  
  60. //-------------------------------------------------------------------------------------------------------------------------------------------------
  61. - (void)actionRegister
  62. //-------------------------------------------------------------------------------------------------------------------------------------------------
  63. {
  64. NSString *name = fieldName.text;
  65. NSString *email = [fieldEmail.text lowercaseString];
  66. NSString *password = fieldPassword.text;
  67. NSString *phoneNumber= fieldPhone.text;
  68. NSString *fName = fieldFName.text;
  69. NSString *lName = fieldLName.text;
  70. NSString *fullName = [NSString stringWithFormat: @"%@ %@", fName, lName];
  71. //---------------------------------------------------------------------------------------------------------------------------------------------
  72. if ([name length] < 3) { [ProgressHUD showError:@"Name is too short."]; return; }
  73. if ([email length] == 0) { [ProgressHUD showError:@"Email must be set."]; return; }
  74. if ([password length] == 0) { [ProgressHUD showError:@"Password must be set."]; return; }
  75. if ([phoneNumber length] == 0) { [ProgressHUD showError:@"Phone number must be set."]; return; }
  76. if ([lName length] < 2) { [ProgressHUD showError:@"Name is too short."]; return; }
  77. if ([fName length] < 2) { [ProgressHUD showError:@"Name is too short."]; return; }
  78. //---------------------------------------------------------------------------------------------------------------------------------------------
  79. [ProgressHUD show:@"Please wait..." Interaction:NO];
  80. //---------------------------------------------------------------------------------------------------------------------------------------------
  81. PFUser *user = [PFUser user];
  82. user.email = email;
  83. user.username = email;
  84. user.password = password;
  85. int randInt = arc4random() % 9000 + 1000;
  86. NSString *strInt = [NSString stringWithFormat:@"%d",randInt];
  87. user[PF_USER_PIN] = strInt;
  88. user[PF_USER_NICKNAME] = name;
  89. user[PF_USER_FIRSTNAME] = fName;
  90. user[PF_USER_LASTNAME] = lName;
  91. user[PF_USER_PHONENUMBER] = phoneNumber;
  92. user[PF_USER_EMAILCOPY] = email;
  93. user[PF_USER_FULLNAME] = fullName;
  94. user[PF_USER_FULLNAME_LOWER] = [fullName lowercaseString];
  95.  
  96. [user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
  97. {
  98. if (error == nil)
  99. {
  100. ParsePushUserAssign();
  101. PostNotification(NOTIFICATION_USER_LOGGED_IN);
  102. [ProgressHUD showSuccess:@"Succeed."];
  103. [self dismissViewControllerAnimated:YES completion:nil];
  104. }
  105. else [ProgressHUD showError:error.userInfo[@"error"]];
  106. }];
  107. }
  108.  
  109. -(NSString*) formatPhoneNumber:(NSString*) simpleNumber deleteLastChar:(BOOL)deleteLastChar {
  110. if(simpleNumber.length==0) return @"";
  111. // use regex to remove non-digits(including spaces) so we are left with just the numbers
  112. NSError *error = NULL;
  113. NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[\s-\(\)]" options:NSRegularExpressionCaseInsensitive error:&error];
  114. simpleNumber = [regex stringByReplacingMatchesInString:simpleNumber options:0 range:NSMakeRange(0, [simpleNumber length]) withTemplate:@""];
  115.  
  116. // check if the number is to long
  117. if(simpleNumber.length>10) {
  118. // remove last extra chars.
  119. simpleNumber = [simpleNumber substringToIndex:10];
  120. }
  121.  
  122. if(deleteLastChar) {
  123. // should we delete the last digit?
  124. simpleNumber = [simpleNumber substringToIndex:[simpleNumber length] - 1];
  125. }
  126.  
  127. // 123 456 7890
  128. // format the number.. if it's less then 7 digits.. then use this regex.
  129. if(simpleNumber.length<7)
  130. simpleNumber = [simpleNumber stringByReplacingOccurrencesOfString:@"(\d{3})(\d+)"
  131. withString:@"($1) $2"
  132. options:NSRegularExpressionSearch
  133. range:NSMakeRange(0, [simpleNumber length])];
  134.  
  135. else // else do this one..
  136. simpleNumber = [simpleNumber stringByReplacingOccurrencesOfString:@"(\d{3})(\d{3})(\d+)"
  137. withString:@"($1) $2-$3"
  138. options:NSRegularExpressionSearch
  139. range:NSMakeRange(0, [simpleNumber length])];
  140. return simpleNumber;
  141. }
  142. - (BOOL)textField:(UITextField *)fieldPhone shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  143. NSString* totalString = [NSString stringWithFormat:@"%@%@",self.fieldPhone.text,string];
  144.  
  145. // if it's the phone number textfield format it.
  146. if(self.fieldPhone.tag==102 ) {
  147. if (range.length == 1) {
  148. // Delete button was hit.. so tell the method to delete the last char.
  149. self.fieldPhone.text = [self formatPhoneNumber:totalString deleteLastChar:YES];
  150. } else {
  151. self.fieldPhone.text = [self formatPhoneNumber:totalString deleteLastChar:NO ];
  152. }
  153. return false;
  154. }
  155.  
  156. return YES;
  157. }
  158. #pragma mark - Table view data source
  159.  
  160. //-------------------------------------------------------------------------------------------------------------------------------------------------
  161. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  162. //-------------------------------------------------------------------------------------------------------------------------------------------------
  163. {
  164. return 1;
  165. }
  166.  
  167. //-------------------------------------------------------------------------------------------------------------------------------------------------
  168. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  169. //-------------------------------------------------------------------------------------------------------------------------------------------------
  170. {
  171. return 7;
  172. }
  173.  
  174. //-------------------------------------------------------------------------------------------------------------------------------------------------
  175. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  176. //-------------------------------------------------------------------------------------------------------------------------------------------------
  177. {
  178. if (indexPath.row == 0) return cellName;
  179. if (indexPath.row == 1) return cellFName;
  180. if (indexPath.row == 2) return cellLName;
  181. if (indexPath.row == 3) return cellPhone;
  182. if (indexPath.row == 4) return cellEmail;
  183. if (indexPath.row == 5) return cellPassword;
  184. if (indexPath.row == 6) return cellButton;
  185. return nil;
  186. }
  187.  
  188. #pragma mark - Table view delegate
  189.  
  190. //-------------------------------------------------------------------------------------------------------------------------------------------------
  191. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  192. //-------------------------------------------------------------------------------------------------------------------------------------------------
  193. {
  194. [tableView deselectRowAtIndexPath:indexPath animated:YES];
  195. //---------------------------------------------------------------------------------------------------------------------------------------------
  196. if (indexPath.row == 6) [self actionRegister];
  197. }
  198.  
  199. #pragma mark - UITextField delegate
  200.  
  201. //-------------------------------------------------------------------------------------------------------------------------------------------------
  202. - (BOOL)textFieldShouldReturn:(UITextField *)textField
  203. //-------------------------------------------------------------------------------------------------------------------------------------------------
  204. {
  205. if (textField == fieldName)
  206. {
  207. [fieldFName becomeFirstResponder];
  208. }
  209. if (textField == fieldFName)
  210. {
  211. [fieldLName becomeFirstResponder];
  212. }
  213.  
  214. if (textField == fieldLName)
  215. {
  216. [fieldPhone becomeFirstResponder];
  217. }
  218.  
  219. if (textField == fieldPhone)
  220. {
  221. [fieldEmail becomeFirstResponder];
  222. }
  223. if (textField == fieldEmail)
  224. {
  225. [fieldPassword becomeFirstResponder];
  226. }
  227. if (textField == fieldPassword)
  228. {
  229. [self actionRegister];
  230. }
  231. return YES;
  232. }
  233.  
  234. @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement