使用委托从iOS中的ViewModel传递数据到UI的任何替代方法?

问题描述 投票:0回答:1

我使用RxSwift在我的VC和VM之间用变量创建了一些非常基本的数据绑定(我很新),现在我很困惑如何最好地传达来自VM的其他UI动作,这些动作需要传递的其他数据他们。

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

我想过再次使用委托。但是在同一个VM中将绑定和委托混合在一起是不合适的吗?

我想抽象一个模板,该模板可以模板到应用程序的其他MVVM区域,这些区域需要为每个VC / VM组合做同样的事情。

ios mvvm swift4 rx-swift
1个回答
0
投票

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

例如,使用Strings作为数据的这样的事情:

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

© www.soinside.com 2019 - 2024. All rights reserved.