Search code examples
iosnsuserdefaultsretainnscoding

how to retain my uitextfield values in viewController when i calling?


I have a main page having 3 textfield in my first view as i navigate to different view and return back to my first view (i.e after i enter all the values i moving to next page).I want my 3 textfield to retain its value when i go back to my main page here my sample code :

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
 NSString *mobile = MobileNum.text;
 [defaults setObject:mobile forKey:self.MobileNum.text];
 NSString *amountText = amount.text;
 [defaults setObject:amountText forKey:self.amount.text];
 [defaults synchronize];
 NSString *temp = [defaults objectForKey:self.MobileNum.text];
 NSString *temp1 = [defaults objectForKey:self.amount.text];
 NSLog(@"%@ %@",temp,temp1);

Solution

  • at you viewWillDisappear method store the defaults like.

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
     NSString *mobile = MobileNum.text;
     [defaults setObject:mobile forKey:@"mobileNumber"];
     NSString *amountText = amount.text;
     [defaults setObject:amountText forKey:@"amount"];
     [defaults synchronize];
    

    again at your viewWillAppear method retrieve the values like.

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
       if ([[defaults valueForKey:@"mobileNumber"] length]>0){
         MobileNum.text=[defaults valueForKey:@"mobileNumber"];
       }
     else {
         MobileNum.text=@"";
      }
      if ([[defaults valueForKey:@"amount"] length]>0) {
        amount.text=[defaults valueForKey:@"amount"];
       }
     else {
        amount.text=@"";
      }
    

    it will work.