Sta*_*nov 6 mvvm uikit ios swift combine
我有一个UITableViewCell包含UISwitch. 这个单元格有它自己的SwitchCellViewModel. 假设它包含一些Bool值(启用与禁用)。并且ViewController是包含UITableView,viewModel为单元格创建并用它设置单元格的人。
我想实现:
用例是下一个:单元格显示一些可以禁用或启用的选项。该操作进入后端,在我收到带有结果的响应(在后端启用与禁用)后,我必须再次将视图状态与更新的数据同步。
我了解如何在单元格级别订阅属性值更改,因此当我从 viewController 在 viewModel 中更改它时,它会立即更新单元格视图。但我不确定如何处理从UISwitchviewController返回的动作。
是否可以通过@PublishedviewModel 中的单个bool 属性实现,或者对于这种双向情况,我必须有 2 个单独的东西。
我必须Publisher为此目的公开一个单独的@Published属性,这对我来说看起来很愚蠢,因为我已经在 viewmodel 中有一个属性,应该通知该视图控制器,所以我为什么不使用它。但是如果我只使用一个,那么情况就是 ViewController@Published在 viewModel 中设置var,cell 本身会处理它并调整 UI,但 ViewController 也会立即获取有关它的事件,因为它已订阅它。
@Published是一种单向数据流 - 它与 一起ObservableObject合成一个组合发布者链,当值“将改变”时发送更新(半双工或单向)。它不会发送已更改的值,仅发送发生更改的信号。
要使数据流返回模型,您需要调用某些内容或通过 UISwitch 激活触发该返回数据流。它可以像回调方法一样简单,用于更新您保持状态的模型 - 这就是我通常开始的地方。
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |