Observe UIUserInterfaceStyle when user change devices theme using RxSwift

Viewed 330

How can I observe user device theme when user changes theme using RxSwift? I already wrote with this code but it doesn't trigger when user changes theme.

        UIScreen.main
                .traitCollection
                .rx
                .observe(UIUserInterfaceStyle.self, "userInterfaceStyle")
                .debug()
                .subscribe(onNext: { (userTheme) in
                    print(userTheme)
                }).disposed(by: disposeBag)

and also I how can I create Observable in Reactive Extension? I already Wrote this code but it doesn't work.

@available(iOS 13.0, *)
extension Reactive where Base: UITraitCollection {
    var deviceTheme: Observable<UIUserInterfaceStyle?> {
        return UIScreen.main.rx.observe(UIUserInterfaceStyle.self, #keyPath(UITraitCollection.userInterfaceStyle), options: .new, retainSelf: true)
    }
}
0 Answers
Related