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

问题描述:

我有一个应用程序,我切换到使用presentModalViewController的TableView视图。然而,使用TableView的视图不在UITableViewController中,而是在普通的UIViewController中。我已经将UITextFields写入UITableViewCells。我用这个动作救什么用户输入:Xcode:为什么我的应用程序不保存UITextField?

- (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驳回视图控制器,然后当我再次介绍它,我打电话使用此代码的ViewDidLoad中的NSUserDefaults:

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

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

感谢提前:)

+0

尝试在您的'savetextfield'方法中放置断点。检查方法是否被调用。然后,在这里发布结果.. – sicKo

要首先:感谢所有的你的精力和时间:)

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

target必须与您的方法,这意味着如果你有- (void)saveTextField:(id)sender,那么你的代码添加目标必须

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

检查全光照NSLog如果你的行动正在运行。

+0

哦,其实它已经是...我只是发布了错误的代码...所以问题仍然存在:( –

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

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