如何在MVVM架构中使用RxSwift发送参数来查看模型?

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

我有登录到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) 


} 
swift mvvm facebook-ios-sdk rx-swift reactive
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.