我在FirstView中为多个UITextFields
制作了一个用于注册目的的应用。
我在应用中不断修改帐户功能。出于修改帐户的目的,我需要将用户导航到注册页面。但无论用户在Name, Date of Birth, Mobile Number
等字段中输入的数据在导航后都没有出现在那里。我需要保留UITextFields
中的数据。这是我第一次面对这个issue.help我解决这个问题。
提前感谢所有人
答案 0 :(得分:0)
每当你创造&推送到ViewController,该ViewController中的所有数据都将被清除。您必须将新值传递给该ViewController,并且必须在推送后重新分配值。
FirstView *first = [[FirstView alloc] init];
first.name = @"My Name";
first.age = @20;
[self.navigationController pushViewController:first animated:YES];
.h文件
@interface FirstView : UIViewController{
UITextField *nameField;
UITextField *ageField;
}
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *age;
@end
.m文件
- (void)viewDidLoad
{
nameField.text = self.name;
ageField.text = self.age;
[super viewDidLoad];
// Do any additional setup after loading the view.
}
答案 1 :(得分:0)
解决此问题的一种方法是将UITextField值存储在NSUserDefaults中。这将存储值,您可以再次访问它们(实际上是从代码中的任何位置)。
假设您的UITextField名为ageTextField,您可以这样做来存储文本:
[[NSUserDefaults standardUserDefaults] setObject:ageTextField.text forKey:@"age"];
要将值返回到您的UITextField,您可以在viewWillAppear中执行此操作(以防它永远不会留下内存)
ageTextField.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"age"];
只是旁注。我通常会制作那些NSUserDefaults键常量(即kAge),这样你就不会错误地键入它们并在其他地方访问它们。