ios - 在 MVVM + Coordinator 中,如何处理 subview ?

标签 ios swift mvvm rx-swift

我正在开发一个 iOS MVVM + Coordinator/RxSwift 项目(非 swiftUI)。
在 groundViewController 中,屏幕上有多个项目,用户可以点击任何项目来调用该项目的详细 View 。点击一个项目后,详细 View 将滑入,当用户点击另一个项目时,详细 View 将滑出,然后再次滑入更新信息。 detailView 是半屏大小,用户也可以点击 groundViewController 上的空白区域来关闭详细 View (滑出动画)。(所以只有一个 detailView)
我决定将详细 View 制作为 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 的滑入/滑出动画?

最佳答案

本地面 View 收到点击时,它会告诉地面 View 模型。

  • 地面 View 模型告诉地面协调员。
  • 地面协调员告诉当前细节协调员(如果有的话)解雇。
  • 当前的细节协调员驳回了它的观点。
  • 地面协调员创建一个新的细节协调员。
  • 地面协调员告诉新的细节协调员进行演示。
  • 新的细节协调器创建细节 View 模型和细节
    看法。它将详细 View 模型传递给详细 View 。
  • 细节协调器显示细节 View 。

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

    关于ios - 在 MVVM + Coordinator 中,如何处理 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65264087/

    相关文章:

    c# - 将 IQueryable 转换为自定义类

    iOS - AVFoundation - 是否可以将整个视频设置为慢动作?

    ios - 计算tableView的heightForRowAtIndexPath中的UICollectionView contentSize

    ios - RxSwift - 递归 Observables?

    ios - 如何在闭包中访问类的变量?

    c# - "FreshIOC.Container.Register"有什么作用?

    ios - UITableViewCell : Adding constraints programmatically from a UITextView to Content View?

    iphone - Swift 中的字典没有给出正确的响应

    swift - 协议(protocol)扩展默认变量实现抛出段错误 11

    wcf - 在MVM VM Silverlight 4中异步等待