【发布时间】:2019-05-27 02:08:13
【问题描述】:
在一些 API 调用之后,我可以检查是否导航到另一个屏幕或在同一屏幕上显示警报。目前,我通过创建一个返回 UIViewController 类型但推送 UIAlertController 会导致问题的 observable 来做到这一点。
关于如何做到这一点的任何建议/想法?
ViewModel.swift
let nextAction = Observable.combineLatest(appVersionOutput, serviceAvailabilityOutput, getLanguagePackOutput,
resultSelector:
{ appVersion, _, _ -> UIViewController in
if appVersion.currentAppVersion == "1.0.0" {
let appServiceAvailability = Availability.shared.getAppStatus()
if appServiceAvailability {
return LoginLandingViewController()
} else {
return ServiceMaintenanceViewController()
}
} else {
return UIAlertController()
}
})
ViewController.swift
viewModel.output.nextAction
.subscribe(onNext: { [weak self] screen in
self?.navigationController?.pushViewController(screen, animated: true)
}) // PROBLEM FACED: Pushing a UIAlertController
.disposed(by: disposeBag)
【问题讨论】:
-
据我了解最好返回错误,并根据错误状态显示视图控制器或警报。
标签: swift mvvm uiviewcontroller uialertcontroller rx-swift