gpt4 book ai didi

ios - 最佳实践 : ListView - DetailView. 加载更多结果

转载 作者:行者123 更新时间:2023-11-28 22:01:53 25 4
gpt4 key购买 nike

我有一个关于最佳实践的基本问题。

设置:

ListView Controller :带有托管对象的 UiTableView。这些对象将从服务器加载。首先加载 20 个对象。滚动到表的末尾,将加载接下来的 20 个对象。选择一个单元格将加载 DetailViewController。我有一个包含项目数组的 ListObject(以及其他包含列表信息的属性,与 DetailVC 无关)

细节 View Controller :显示所选对象的详细信息。 VC 还有 2 个按钮来显示下一个对象的详细信息或上一个对象。

现在例如ListVC 中加载了 20 个对象,我选择第 10 行,将显示索引为 10 的对象的 DetailVC。然后我点击下一个对象直到对象编号 20。现在,当我单击“下一步”按钮时,必须从服务器加载接下来的 20 个对象。(显示对象 #21 但只加载了 20 个对象)。

是否有加载下一个对象的最佳实践?我有一个数据加载类。-(无效)loadDataWithRequest:completionHandler:当 NSUrlSession DownloadTask 完成时,completionHandler 被调用,这调用类 ApiParser 进行 json 解析并将结果添加到列表对象。

所以我必须在 DetailVC 中为接下来的 20 个对象调用它。

现在执行此操作的最佳做​​法是什么?或者有没有更好的方法来实现数据加载?

我可以将 ListVC 引用传递给 DetailVC 并调用 [listvc loadDataWithRequest:completionhandler] 并从 [listvc.listobject.items objectAtIndex] 加载详细信息

或者我可以将 ListObjectItems 传递给 detailVC。以某种方式加载新对象和有一个 KVO 到 ListObjectItems 计数。

其他方法是委托(delegate)或 NotificationCenter。

但我想最好的做法是不要将 loadData 方法放在 ListVC 中,而是放在其他地方。

如何将dataLoad方法作为实例方法放在ListObject类中,并在ListVC和DetailVC中监听KVO?

这么多的可能性。但是什么是好的方法呢?

最佳答案

当按下“下一个”或“上一个”按钮时,您可以通知“主 TableView ”该操作。如果需要,这将在呈现详细 View 之前加载下一批。不要阻塞 UI,在等待下一批返回时在空白的详细 View 中显示一个微调器或其他东西。

总而言之:不要在详细信息 View 中放置任何加载逻辑。如果您告诉它显示 nil(例如,尚未完成加载),它应该只负责显示“详细信息”和可能的加载微调器。

关于ios - 最佳实践 : ListView - DetailView. 加载更多结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24919526/

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