如何在MVVM架构中使用RxSwift发送参数来查看模型?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在MVVM架构中使用RxSwift发送参数来查看模型?相关的知识,希望对你有一定的参考价值。
我有登录到facebook的服务方法,它有一个View Controller类型的参数。我用户RxSwift和MVVM。在View Controller中,我将绑定按钮点击以查看模型的观察者并订阅它以获取内部的调用服务。如何发送参数视图控制器来查看模型以发送到我的服务?
这是问题所在
self.authService.signInWithFacebook(from:???)
class AuthService: AuthServiceType {
// ...
func signInWithFacebook(from: UIViewController?) -> Observable<Result<Void, FirebaseLoginError>> {
// ...
}
// ...
}
class LoginViewModel {
let facebookLoginDidTapObserver: AnyObserver<Void>
let facebookLoginDidTapObservable: Observable<Void>
private let authService: AuthServiceType
init(authService: AuthServiceType = AuthService()) {
self.authService = authService
let facebookLoginDidTap = PublishSubject<Void>()
facebookLoginDidTapObserver = facebookLoginDidTap.asObserver()
facebookLoginDidTapObservable = facebookLoginDidTap.asObservable()
facebookLoginDidTapObservable
.throttle(0.5, scheduler: MainScheduler.instance)
.subscribe(onNext: { tap in
return self.authService.signInWithFacebook(from: ???)
})
.disposed(by: disposeBag)
}
}
class LoginViewController: UIViewController {
facebookLoginButton.rx
.tap
.bind(to: viewModel.facebookLoginDidTapObserver)
.disposed(by: disposeBag)
}
以上是关于如何在MVVM架构中使用RxSwift发送参数来查看模型?的主要内容,如果未能解决你的问题,请参考以下文章
RxSwift 和 MVVM:observable 在没有绑定的情况下无法执行