Xcode:为什么我的应用程序不保存 UITextField?
我有一个应用程序,我可以使用presentModalViewController切换到带有TableView的视图。然而,带有 TableView 的视图不在 UITableViewController 中,而是在常规 UIViewController 中。我已将 UITextFields 写入 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"];
问题是它不'不工作。而且我无法找出问题所在。任何帮助将不胜感激。
提前致谢 :)
I have an app where I switch to a view with a TableView using presentModalViewController. The View with the TableView is however not at UITableViewController but a regular UIViewController. I have written UITextFields into the UITableViewCells. I use this action to save what the user inputs:
- (IBAction)saveTextField:(id)sender {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:TextField.text forKey:@"keyTextField"];
[userDefaults synchronize]; }
I call this method with this code:
[TextField addTarget:self action:@selector(hideKeyboard:) forControlEvents:UIControlEventEditingDidEndOnExit];
When I dismiss the ViewController using dismissModalViewController and then when I presents it again I call the NSUserDefaults in the ViewDidLoad with this code:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
TextField.text = [userDefaults objectForKey:@"keyTextField"];
Problem is that it doesn't work. And I can't figure out the problem. Any help would be appreciated.
Thanks in advance :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
target
必须与您的方法相同,这意味着如果您有- (void)saveTextField:(id)sender
那么您需要编写添加目标的代码使用
NSLog
检查您的操作是否正在运行。The
target
has to be the same as your method, meaning that if you have- (void)saveTextField:(id)sender
then you code to add the target need to beCheck usin
NSLog
if your action is being run.您不能使用 textFieldDidEndEditing: 委托方法来进行保存,而不是设置目标吗?
Instead of setting a target, can't you do that saving with the textFieldDidEndEditing: delegate method?
在视图中使用此代码已加载
NSUserDefaults *user=[NSUserDefaults standardUserDefaults];
TextField.text=[用户 stringForKey:@"keyTextField"];
use this code in view did load
NSUserDefaults *user=[NSUserDefaults standardUserDefaults];
TextField.text=[user stringForKey:@"keyTextField"];
首先:感谢大家付出的努力和时间:)
事实证明,问题不在于保存和加载它的代码。问题是我只创建了一个 UITextfield,然后将其放入每个 UITableViewCell 中,这就是问题所在。所以我为每个 UITableViewCells 创建了单独的 UITextFields 并解决了问题:)
To begin with: thanks to all of you for your effort and time :)
Turns out the problem wasn't with the code that saves and loads it. The problem was that I only created one UITextfield which I then put into every UITableViewCell and that was the problem. So I created individual UITextFields for every UITableViewCells and that fixed the problem :)