Xcode:为什么我的应用程序没有保存UITextField?

时间:2011-09-25 19:27:52

标签: iphone xcode uitableview uitextfield nsuserdefaults

我有一个应用程序,我使用presentModalViewController切换到带有TableView的视图。但是,使用TableView的View不是UITableViewController,而是常规的UIViewController。我已经将UITextField写入UITableViewCells。我使用此操作来保存用户输入的内容:

- (IBAction)saveTextField:(id)sender {

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:TextField.text forKey:@"keyTextField"];
[userDefaults synchronize]; }

我用这段代码调用这个方法:

    [TextField addTarget:self action:@selector(hideKeyboard:) forControlEvents:UIControlEventEditingDidEndOnExit];

当我使用dismissModalViewController关闭ViewController然后当我再次呈现它时,我使用以下代码调用ViewDidLoad中的NSUserDefaults:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
TextField.text = [userDefaults objectForKey:@"keyTextField"];

问题是它不起作用。我无法弄清楚问题。任何帮助将不胜感激。

提前致谢:)

4 个答案:

答案 0 :(得分:1)

target必须与您的方法相同,这意味着如果您拥有- (void)saveTextField:(id)sender,那么您需要编码以添加目标

 [TextField addTarget:self action:@selector(saveTextField:) forControlEvents:UIControlEventEditingDidEndOnExit];

如果您的操作正在运行,请检查我们NSLog

答案 1 :(得分:1)

不是设置目标,而是使用textFieldDidEndEditing:delegate方法进行保存吗?

答案 2 :(得分:1)

在视图中使用此代码进行加载    NSUserDefaults * user = [NSUserDefaults standardUserDefaults];     TextField.text = [user stringForKey:@“keyTextField”];

答案 3 :(得分:1)

首先:感谢大家的努力和时间:)

原来问题不在于保存和加载它的代码。问题是我只创建了一个UITextfield然后放入每个UITableViewCell,这就是问题所在。所以我为每个UITableViewCells创建了单独的UITextFields并修复了问题:)