我已经看过很多关于此的其他问题(我知道有很多!),但似乎没有一个满足我的查询。 基本上我有一个视图控制器,它包含两个UITextFields。 该应用程序的设计是为了加载此页面,用户输入数字,然后点击背景以摆脱键盘,并保存值。然后,每当用户导航回页面时,我都希望将其预加载到文本字段中。我认为我将不得不创建另一个名为saveData或其他的IBAction,但无论如何都要在点击背景时自动保存它?另外为了保存我想要使用NSUserDefaults的数据,有没有其他方法来保存数据? 任何帮助表示赞赏, 迈克尔 我使用以下代码进行应用程序的编辑和背景点击部分:
-(IBAction) textFieldDoneEditing : (id) sender{
[sender resignFirstResponder];
}
- (IBAction)backgroundTap:(id)sender {
[self.textInputOne resignFirstResponder];
[self.textInputTwo resignFirstResponder];
}
答案 0 :(得分:3)
NSUserDefaults可以很好地解决这个问题:
-(IBAction) backgroundTap:(id) sender {
NSString *inputOne = textInputOne.text;
NSString *inputTwo = textInputTwo.text;
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:inputOne forKey:@"InputOne"];
[userDefaults setObject:inputTwo forKey:@"InputTwo"];
[textInputOne resignFirstResponder];
[textInputTwo resignFirstResponder];
[sender resignFirstResponder];
}
然后在- (void)viewDidLoad
中回调存储的NSUserDefaults:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
textInputOne.text = [userDefaults objectForKey:@"InputOne"];
textInputTwo.text = [userDefaults objectForKey:@"InputTwo"];
应该可以正常工作
答案 1 :(得分:1)
如果您想保存数据(特别是如果应用程序已关闭),NSUserdefaults是一种很好的简单方法。其他选项包括写入您自己的plist文件或设置核心数据存储,但您只需保存两个数字,因此不确定是否需要所有这些。