gpt4 book ai didi

mvvm - RxSwift : How to pass a control event through multiple view models

转载 作者:行者123 更新时间:2023-12-03 10:19:22 24 4
gpt4 key购买 nike

我有一个带有按钮的集合 View 单元格,并且我想通过该单元格的 View 模型, View Controller 的 View 模型以及集合 View Controller 本身(因为我需要提供一个 View Controller )来传递点击控制事件(button.rx.rap)点击事件)。

如何以Rx方式实现(理想情况下不使用主题)?

最佳答案

我们的方法是在 View 模型中使用PublishSubject。
例如

class CellViewModel {

let optionButtons: [TripOptionButtonsCellView.TripOptionButtonType]
let optionButtonTapped = PublishSubject<TripOptionButtonsCellView.TripOptionButtonAction>()

init()

...
}

func switchButtonValueChanged( to isOn: Bool ) {

viewModel?.optionButtonTapped.onNext(.enableOrDisableNotifications(isEnabled: isOn))

}

}

然后,您可以在 View Controller 中收听下一个事件,并将其传递到所需的任何位置。您只需要确保重新订阅,因为tableviewcell可以回收。

关于mvvm - RxSwift : How to pass a control event through multiple view models,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42623766/

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