gpt4 book ai didi

ios - NSUserDefaults 在 UITableViewController 中添加行

转载 作者:行者123 更新时间:2023-11-29 12:51:44 28 4
gpt4 key购买 nike

我正在尝试使用 NSUserDefaults 来存储 UITextField 文本,并在编辑时按下“完成”按钮后在另一个 Controller 中检索它。

在用户放置信息的 Controller 中,我这样编码:

-(IBAction)confirmAction:(id)sender{

UIViewController *prevVC = [self.navigationController.viewControllers objectAtIndex:1];
[self.navigationController popToViewController:prevVC animated:YES];

NSUserDefaults *try = [NSUserDefaults standardUserDefaults];
[try setObject:self.nameTextField.text forKey:@"name"];
[try synchronize];

}

在另一个 Controller 中我使用这个:

-(void)doneAction:(id)sender{

[self.tableView setEditing:NO animated:NO];

self.navigationItem.leftBarButtonItem = nil;

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editButtonClicked:)];

NSUserDefaults *try = [NSUserDefaults standardUserDefaults];
[ingredients addObject:[try stringForKey:@"name"]];



}

为什么我看不到任何结果。 tableview 中没有添加任何内容。为什么?我写错了吗?

最佳答案

您看不到更改的最可能原因是 UITableView 不知道您已将新项目添加到 ingredients 数组。在 MVC 术语中,您的 Controller 对模型进行了更改,但它没有将该更改通知 View 。

您需要在 doneAction: 方法结束时调用 [self.tableView reloadData];:

-(void)doneAction:(id)sender {
[self.tableView setEditing:NO animated:NO];
self.navigationItem.leftBarButtonItem = nil;
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editButtonClicked:)];
NSUserDefaults *try = [NSUserDefaults standardUserDefaults];
[ingredients addObject:[try stringForKey:@"name"]];
[self.tableView reloadData];
}

关于ios - NSUserDefaults 在 UITableViewController 中添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22281440/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com