如何在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 模式

RxSwift 和 MVVM:observable 在没有绑定的情况下无法执行

RxSwift MVVM 实现查询

传递数据 MVVM 和 RxSwift

如何使用 MVVM 和 RxSwift 编辑/删除 UICollectionView 单元格

我应该如何访问有关用于使用RxSwift和MVVM填充表格视图的数组的数据