如何观察登录状态?



我想让视图控制器知道登录状态的每一个变化。我必须发出单音并订阅吗?

Singleton.swift

class Singleton {
static let shared = Singleton()
let isLogin: BehaviorRelay<Bool>
private init() {
isLogin = BehaviorRelay<Bool>(value: false)
}
}

SomeViewController

class SomeVc: UIViewController {
Sigleton.shared.isLogin.subscribe(.....)
}

不,你不需要Singleton…

以下是我在实际生产中使用的代码。这段代码在我的application(_:didFinishLaunchingWithOptions:)方法中。
_ = UserDefaults.standard.rx.observe(String.self, "token")
.map { $0 ?? "" }
.filter { $0.isEmpty }
.bind(onNext: presentScene(animated: true) { _ in
LoginViewController.scene { $0.connect() }
})

当用户登录时,我将令牌保存在UserDefaults中,当用户注销时,我将其删除。当用户注销时,上面的代码将显示我的LoginViewController

如果任何其他视图控制器需要跟踪用户的登录状态,它们也可以订阅令牌可观察对象。

presentScene(animated:_:)函数和scene(_:)方法都来自我的CLE库

相关内容

  • 没有找到相关文章

最新更新