将对象添加到底层 nsmanagementobjectcontext 后如何刷新 uitableview/nsmutablearray

发布于 2024-10-18 15:08:52 字数 513 浏览 5 评论 0原文

我有一个基本的 UITableViewController,它显示从简单的两个实体核心数据存储库中获取的学校列表。 tableview 绑定到从 NSManagedObjectContext 加载的学校 NSMutableArray。

我添加了一个“添加新学校”按钮,它向用户提供了一个用于添加新学校的表单。当用户添加新学校并单击“保存”时,我将新学校对象保存到 NSManagedObjectContext 并从导航堆栈中弹出“添加学校”视图。我被送回原来的 uitableview,新学校不在列表中。

我知道我需要在返回时刷新表格视图,但不确定如何刷新。注意:如果我退出模拟器并再次运行程序,则会出现新的学校记录,因此我知道它已正确添加到底层存储中。

很确定我需要实现一个 NSFetchedResultsController ,但这似乎是大量代码,看起来非常简单。

如果 NSFetchedResultsController 是唯一的方法,有人可以指导我查看可能显示此流程的教程或代码清单吗?

非常感谢。

菲尔

I have a basic UITableViewController that displays a list of schools, fetched from a simple two-entity core data repository. The tableview is bound to an NSMutableArray of schools that is loaded from an NSManagedObjectContext.

I added a "add new school" button which presents the user with a form for adding a new school. When the user adds the new school and clicks "save", I save the new school object to the NSManagedObjectContext and pop the "add school" view from the navigation stack. I am sent back to the original uitableview and the new school IS NOT in the list.

I know that I need to refresh the tableview, upon return, but am unsure how. NOTE: if I exit the simulator and run the program again, the new school record appears, so I know it is getting added properly to the underlying store.

Pretty sure I need to implement an NSFetchedResultsController but that seems like a TON OF CODE for what seems to be something quite straightforward.

If NSFetchedResultsController is the only way, can someone direct me to a tutorial or a code listing that may show this flow?

Many thanks.

Phil

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

杀手六號 2024-10-25 15:08:52

尝试在 viewWillAppear 方法中重新加载数据:

- (void)viewWillAppear:(BOOL)animated {
    [self.tableView reloadData]
}

PS:我仍然建议您使用获取的结果控制器。很多代码都是样板代码,您通常不需要接触它们。

Try reloading the data in your viewWillAppear method:

- (void)viewWillAppear:(BOOL)animated {
    [self.tableView reloadData]
}

PS: I'd still recommend you look in to using a fetched results controller. A lot of the code is boiler plate and you won't normally need to touch it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文