我在处理从另一个模块呈现的模块返回某些信息时遇到问题。在我的例子中,我有两个模块,Map和Search。 MapView
通知它想要搜索地址,因此MapPresenter
开始显示搜索模块的操作(其视图以模态显示)。在搜索模块中,我进行文本搜索,获取结果,显示并选择一个。该选择必须返回到Map模块。如何在不突破界限的情况下实现这一目标?
考虑到,如果我错了,请纠正我,模块之间的通信只能通过路由实现(而不是"跳过"模块之间有通知,完成块等等) on),我实现了这个场景:
(对不起,也许序列图会更好)
MapWireframe
实现了常规界面,还实现了另一个我称为MapModuleInput
的界面,所以当我开始搜索操作(蓝色)时,我会传递给SearchWireframe
MapWireframe
实现那个界面。
之后,在红色流程中,在SearchView
我开始搜索案例,它从交互者获取结果等。之后显示结果并且用户选择一个(绿色),所以选定的结果将通过MapModuleInput
界面返回到地图。
那么,这是正确的吗?
谢谢!
答案 0 :(得分:0)
如果我理解正确你有搜索的“模块”,它会搜索搜索交互器,检索一些POI并将此结果返回给搜索演示者。您有一个问题,您可以避免,而不是在SearchPresenter中检索结果,只是与地图进行通信并发送查询,然后在MapView中使用SearchInteractor,现在您不必在模块之间发送对象。 如果你需要以你在图中绘制的方式执行此操作,请使用像Core Data这样的DataSource来保存大量的objets,然后在另一个“模块”中检索它。