我有一个应用程序,我使用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"];
问题是它不起作用。我无法弄清楚问题。任何帮助将不胜感激。
提前致谢:)
答案 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并修复了问题:)