使用userdefaults删除行UItableview iphone

时间:2011-08-08 19:08:27

标签: iphone nsuserdefaults delete-row

我需要你的帮助,也许是傻事,但我找不到错误。 我有一个表格视图和一个添加按钮,当它点击时我会显示一个带有小形式的模态视图,当按下保存按钮时我将数据发送到TableView控制器以显示它,我也在使用{ {1}}将此数据保存在数组中。

我的问题出现了,例如,当我添加2个新行并删除其中1个时,然后当我添加另一个时,它显示我删除的最后一行而不是显示我刚添加的那一行。

我正在以这种方式进行保存和阅读:

<{1>} NSUserDefaults我读了viewDidAppear并获取数据(如果存在)。 在从NSUserDefaults我保存到userdefaults的ModalView中捕获数据的方法中。 在commitEditing方法中,我读取了userdefaults,然后从数组和表中删除该行,然后将此更改保存在userdefaults中。

我不知道我做错了什么,有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

在该班级的[self.tableView reloadData];中使用viewWillAppear。您还可以在另一个视图控制器中引用该类,为其创建一个对象并调用[classObject.tableView reloadData];

请务必记住在添加操作或删除操作后重新加载tableView

答案 1 :(得分:0)

不要使用NSUserDefaults充当表的直接数据源。将其存储在中间模型中。以这种方式调试会更容易。

如果您在保持模型与用户默认值同步时遇到问题,请在更改时调用[[NSUserDefaults standardUserDefaults] synchronize]

另外,请确保您的表格单元重用不会出错。如果您有客户UITableViewCell类并且未正确实现-prepareForReuse,则可能会看到旧数据。