Ios 在UITextFields中保留数据,即使在导航之后也是如此

Ios 在UITextFields中保留数据,即使在导航之后也是如此,ios,objective-c,uinavigationcontroller,uitextfield,Ios,Objective C,Uinavigationcontroller,Uitextfield,为了注册,我在FirstView中制作了一个包含多个UITextFields的应用程序 我一直在应用程序中修改帐户功能。为了修改帐户,我需要将用户导航到注册页面。但是无论用户在姓名、出生日期、手机号等字段中输入的数据在导航后都不会出现。我需要保持数据在UITextFields中的状态。这是我第一次面对这个问题。请帮我解决这个问题 提前感谢大家无论何时创建并推送到ViewController,该ViewController中的所有数据都将被清除。您必须将新值传递给该ViewController,并

为了注册,我在FirstView中制作了一个包含多个
UITextFields
的应用程序

我一直在应用程序中修改帐户功能。为了修改帐户,我需要将用户导航到注册页面。但是无论用户在
姓名、出生日期、手机号等字段中输入的数据在导航后都不会出现。我需要保持数据在
UITextFields
中的状态。这是我第一次面对这个问题。请帮我解决这个问题


提前感谢大家

无论何时创建并推送到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.
}

解决此问题的一种方法是将UITextField值存储在NSUserDefaults中。这将存储这些值,并且您可以再次访问它们(实际上可以从代码中的任何地方访问)

假设您的UITextField名为ageTextField,您可以这样做来存储文本:

[[NSUserDefaults standardUserDefaults] setObject:ageTextField.text forKey:@"age"];
要将值返回UITextField,可以在ViewWillDisplay中执行此操作(以防它从未离开内存)


只是旁注。我通常将这些NSUserDefaults键设置为常量(即kAge),这样您就不会键入错误,并且可以在其他位置访问它们。

只有当您导航到另一个视图时,您的视图控制器才在导航堆栈中吗?我无法理解您的评论您是否从一个具有文本字段的视图控制器中推另一个视图控制器?当您推到第一个视图时,所有文本字段都已清除。这就是你想说的吗?不是其他作为注册第一视图的viewcontroller。我只需要带他回到第一个视图我尝试了这一个,但是使用NSUserDefaults,我无法在同一个ViewControllers中使用数据,或者我应该告诉你在设置对象之后添加这一行:[[NSUserDefaults standardUserDefaults]synchronize];
ageTextField.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"age"];