Ios 在MVVM中+;协调员,如何处理子视图?

Ios 在MVVM中+;协调员,如何处理子视图?,ios,swift,mvvm,rx-swift,Ios,Swift,Mvvm,Rx Swift,我正在做一个iOS MVVM+Coordinator/RxSwift项目(非swiftUI) 在groundViewController中,屏幕上有多个项目,用户可以点击任何项目来调用该项目的详细视图。点击一个项目后,详细视图将滑入,当用户点击另一个项目时,详细视图将滑出,然后随着更新的信息再次滑入。detailedView是屏幕大小的一半,用户还可以点击groundViewController上的空白区域以关闭详细视图(滑出动画)。(因此只有一个detailedView) 我决定将该详细视图作

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

在groundViewController中,屏幕上有多个项目,用户可以点击任何项目来调用该项目的详细视图。点击一个项目后,详细视图将滑入,当用户点击另一个项目时,详细视图将滑出,然后随着更新的信息再次滑入。detailedView是屏幕大小的一半,用户还可以点击groundViewController上的空白区域以关闭详细视图(滑出动画)。(因此只有一个detailedView)

我决定将该详细视图作为UIView,它将有自己的协调器和视图模型,并添加到groundViewControll.view中。但我现在对如何在它们之间沟通或事件流感到困惑

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

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

谁应该负责detialedView的滑入/滑出动画?

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

  • 地面视图模型告诉地面协调器
  • 地面协调员通知当前的详细信息协调员(如果有)解散
  • 当前详细信息协调器将取消其视图
  • 地面协调器将创建一个新的详图协调器
  • 地面协调员告诉新的细节协调员进行演示
  • 新详图协调器将创建详图视图模型和详图 看法它将局部视图模型传递给局部视图
  • 详图协调器显示详图视图

  • 物品创建和销毁的具体时间有一些变化,但以上是总体思路。

    地面协调员应负责显示细节并将其忽略。您应该将协调器的路径传递到detailView,这将触发另一个细节,但首先关闭当前细节。因此,当细节视图可见时,您仍然可以看到地面视图上的项目并与之交互?@DanielT。你说得对。这就是我选择UIView而不是UIViewController的原因之一。我刚刚更新了问题,让它更清楚。谁应该负责/触发detialedView的滑入/滑出动画?细节协调器触发它,视图控制器执行它。