Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- @interface RegisterView()
- @property (strong, nonatomic) IBOutlet UITableViewCell *cellName;
- @property (strong, nonatomic) IBOutlet UITableViewCell *cellEmail;
- @property (strong, nonatomic) IBOutlet UITableViewCell *cellPassword;
- @property (strong, nonatomic) IBOutlet UITableViewCell *cellButton;
- @property (strong, nonatomic) IBOutlet UITableViewCell *cellPhone;
- @property (strong, nonatomic) IBOutlet UITableViewCell *cellFName;
- @property (strong, nonatomic) IBOutlet UITableViewCell *cellLName;
- @property (strong, nonatomic) IBOutlet UITextField *fieldName;
- @property (strong, nonatomic) IBOutlet UITextField *fieldEmail;
- @property (strong, nonatomic) IBOutlet UITextField *fieldPassword;
- @property (strong, nonatomic) IBOutlet UITextField *fieldPhone;
- @property (strong, nonatomic) IBOutlet UITextField *fieldFName;
- @property (strong, nonatomic) IBOutlet UITextField *fieldLName;
- @end
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- @implementation RegisterView
- @synthesize cellName, cellEmail, cellPassword, cellButton, cellPhone, cellLName, cellFName;
- @synthesize fieldName, fieldEmail, fieldPassword, fieldPhone, fieldLName,fieldFName;
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- - (void)viewDidLoad
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- {
- [super viewDidLoad];
- self.title = @"Register";
- //UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"giberWallpaper.png"]];
- //self.tableView.backgroundColor = background;
- self.navigationController.navigationBar.tintColor= [UIColor colorWithRed:(255/256.0) green:(128/256.0) blue:(0/256.0) alpha:(1.0)];
- //---------------------------------------------------------------------------------------------------------------------------------------------
- UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
- [self.tableView addGestureRecognizer:gestureRecognizer];
- gestureRecognizer.cancelsTouchesInView = NO;
- }
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- - (void)viewDidAppear:(BOOL)animated
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- {
- [super viewDidAppear:animated];
- [fieldName becomeFirstResponder];
- }
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- - (void)dismissKeyboard
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- {
- [self.view endEditing:YES];
- }
- #pragma mark - User actions
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- - (void)actionRegister
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- {
- NSString *name = fieldName.text;
- NSString *email = [fieldEmail.text lowercaseString];
- NSString *password = fieldPassword.text;
- NSString *phoneNumber= fieldPhone.text;
- NSString *fName = fieldFName.text;
- NSString *lName = fieldLName.text;
- NSString *fullName = [NSString stringWithFormat: @"%@ %@", fName, lName];
- //---------------------------------------------------------------------------------------------------------------------------------------------
- if ([name length] < 3) { [ProgressHUD showError:@"Name is too short."]; return; }
- if ([email length] == 0) { [ProgressHUD showError:@"Email must be set."]; return; }
- if ([password length] == 0) { [ProgressHUD showError:@"Password must be set."]; return; }
- if ([phoneNumber length] == 0) { [ProgressHUD showError:@"Phone number must be set."]; return; }
- if ([lName length] < 2) { [ProgressHUD showError:@"Name is too short."]; return; }
- if ([fName length] < 2) { [ProgressHUD showError:@"Name is too short."]; return; }
- //---------------------------------------------------------------------------------------------------------------------------------------------
- [ProgressHUD show:@"Please wait..." Interaction:NO];
- //---------------------------------------------------------------------------------------------------------------------------------------------
- PFUser *user = [PFUser user];
- user.email = email;
- user.username = email;
- user.password = password;
- int randInt = arc4random() % 9000 + 1000;
- NSString *strInt = [NSString stringWithFormat:@"%d",randInt];
- user[PF_USER_PIN] = strInt;
- user[PF_USER_NICKNAME] = name;
- user[PF_USER_FIRSTNAME] = fName;
- user[PF_USER_LASTNAME] = lName;
- user[PF_USER_PHONENUMBER] = phoneNumber;
- user[PF_USER_EMAILCOPY] = email;
- user[PF_USER_FULLNAME] = fullName;
- user[PF_USER_FULLNAME_LOWER] = [fullName lowercaseString];
- [user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
- {
- if (error == nil)
- {
- ParsePushUserAssign();
- PostNotification(NOTIFICATION_USER_LOGGED_IN);
- [ProgressHUD showSuccess:@"Succeed."];
- [self dismissViewControllerAnimated:YES completion:nil];
- }
- else [ProgressHUD showError:error.userInfo[@"error"]];
- }];
- }
- -(NSString*) formatPhoneNumber:(NSString*) simpleNumber deleteLastChar:(BOOL)deleteLastChar {
- if(simpleNumber.length==0) return @"";
- // use regex to remove non-digits(including spaces) so we are left with just the numbers
- NSError *error = NULL;
- NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[\s-\(\)]" options:NSRegularExpressionCaseInsensitive error:&error];
- simpleNumber = [regex stringByReplacingMatchesInString:simpleNumber options:0 range:NSMakeRange(0, [simpleNumber length]) withTemplate:@""];
- // check if the number is to long
- if(simpleNumber.length>10) {
- // remove last extra chars.
- simpleNumber = [simpleNumber substringToIndex:10];
- }
- if(deleteLastChar) {
- // should we delete the last digit?
- simpleNumber = [simpleNumber substringToIndex:[simpleNumber length] - 1];
- }
- // 123 456 7890
- // format the number.. if it's less then 7 digits.. then use this regex.
- if(simpleNumber.length<7)
- simpleNumber = [simpleNumber stringByReplacingOccurrencesOfString:@"(\d{3})(\d+)"
- withString:@"($1) $2"
- options:NSRegularExpressionSearch
- range:NSMakeRange(0, [simpleNumber length])];
- else // else do this one..
- simpleNumber = [simpleNumber stringByReplacingOccurrencesOfString:@"(\d{3})(\d{3})(\d+)"
- withString:@"($1) $2-$3"
- options:NSRegularExpressionSearch
- range:NSMakeRange(0, [simpleNumber length])];
- return simpleNumber;
- }
- - (BOOL)textField:(UITextField *)fieldPhone shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
- NSString* totalString = [NSString stringWithFormat:@"%@%@",self.fieldPhone.text,string];
- // if it's the phone number textfield format it.
- if(self.fieldPhone.tag==102 ) {
- if (range.length == 1) {
- // Delete button was hit.. so tell the method to delete the last char.
- self.fieldPhone.text = [self formatPhoneNumber:totalString deleteLastChar:YES];
- } else {
- self.fieldPhone.text = [self formatPhoneNumber:totalString deleteLastChar:NO ];
- }
- return false;
- }
- return YES;
- }
- #pragma mark - Table view data source
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- {
- return 1;
- }
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- {
- return 7;
- }
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- {
- if (indexPath.row == 0) return cellName;
- if (indexPath.row == 1) return cellFName;
- if (indexPath.row == 2) return cellLName;
- if (indexPath.row == 3) return cellPhone;
- if (indexPath.row == 4) return cellEmail;
- if (indexPath.row == 5) return cellPassword;
- if (indexPath.row == 6) return cellButton;
- return nil;
- }
- #pragma mark - Table view delegate
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- {
- [tableView deselectRowAtIndexPath:indexPath animated:YES];
- //---------------------------------------------------------------------------------------------------------------------------------------------
- if (indexPath.row == 6) [self actionRegister];
- }
- #pragma mark - UITextField delegate
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- - (BOOL)textFieldShouldReturn:(UITextField *)textField
- //-------------------------------------------------------------------------------------------------------------------------------------------------
- {
- if (textField == fieldName)
- {
- [fieldFName becomeFirstResponder];
- }
- if (textField == fieldFName)
- {
- [fieldLName becomeFirstResponder];
- }
- if (textField == fieldLName)
- {
- [fieldPhone becomeFirstResponder];
- }
- if (textField == fieldPhone)
- {
- [fieldEmail becomeFirstResponder];
- }
- if (textField == fieldEmail)
- {
- [fieldPassword becomeFirstResponder];
- }
- if (textField == fieldPassword)
- {
- [self actionRegister];
- }
- return YES;
- }
- @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement