在 iOS 中使用委派将数据从 iOS 中的视图模型传递到 UI 的任何替代方法



我已经使用RxSwift在我的VC和VM之间创建了一些非常基本的数据绑定(我非常陌生(,现在我对如何最好地传达来自VM的其他UI操作感到困惑,这些操作需要随它们一起传递其他数据。

例如触发错误消息传递的弹出警报、导航控件等,因为我想随它们一起发送参数。

我考虑过再次使用委派。 但是,在同一 VM 中混合绑定和委派是否不合适?

我想抽象出一种模式,该模式可以模板化到应用程序的其他 MVVM 区域,这些区域需要为每个 VC/VM 组合执行相同的操作。

这很容易变成一个基于意见的问题,但如果你想坚持使用 RxSwift,我假设你这样做,最好的方法是创建从 VC 到 VM 的订阅。实质上,您的 VM 将订阅 VC 中的VariablePublishSubject或类似内容,您将在必要时处理这些内容。

例如,使用字符串作为数据:

let subject = PublishSubject<String>()
// As you can see the subject casts nicely, because it's an Observable subclass
let observable : Observable<String> = subject
observable
    .subscribe(onNext: { text in
        print(text)
    })
    .addDisposableTo(disposeBag)
// You can call onNext any time you want to emit a new item in the sequence
subject.onNext("Hey!")
subject.onNext("I'm back!")

您可以在此处查看更多示例:http://swiftpearls.com/RxSwift-for-dummies-3-Subjects.html

相关内容

  • 没有找到相关文章

最新更新