MVVM + Coordinator中,如何处理子视图?

In MVVM + Coordinator, how to deal with sub view?

我正在开发一个 iOS MVVM + Coordinator/RxSwift 项目(非 swiftUI)。

在groundViewController中,屏幕上有多个item,用户可以点击任意一个item调用该item的详细视图。详细视图将在点击一个项目后滑入,当用户点击另一个项目时,详细视图将滑出然后再次滑入并更新信息。 detailedView是半屏尺寸,用户也可以点击groundViewController上的空白space关闭详细视图(滑出动画)。(所以只有一个detailedView)

我决定将该详细视图制作成 UIView,它将拥有自己的协调器和 ViewModel,并添加到 groundViewControll.view。但是我现在对如何在它们之间或事件流之间进行通信感到困惑。

问题:在 MVVM/Coordinator 模式中,将此流程设为:

是否正确
groundViewController (receive a tap on the object) - > 
groundViewModel - >
groundCoordinator (creat and pass itemID ) - > 
detailedViewCoordinator (creat) - > 
detailedViewModel and detialedView

detialedView的滑动in/out动画应该由谁负责?

当地面视图收到点击时,它会告诉地面视图模型。

  1. 地面视图模型告诉地面协调员
  2. 地面协调员告诉当前的细节协调员(如果有)解散。
  3. 当前的细节协调员驳回了它的观点。
  4. 地面协调员创建了一个新的细节协调员。
  5. 地面协调员通知新的细节协调员出席。
  6. 新的细节协调员创建细节视图模型和细节 看法。它将细节视图模型传递给细节视图。
  7. 细节协调员呈现细节视图。

项目创建和销毁的确切时间存在一些差异,但以上是总体思路。