アプリを制作していると、アニメーションとか、諸々のデータ処理ですとか……そういったロジックが沢山あると思います。
そんな中、ホームに戻る時には該当の処理を止めて、アプリに戻ってきたら処理を再開させる……とか、そういった処理をたまに実装しないといけなくなったりします。
RxSwiftを使うと、そういった処理が簡単に実装できたので備忘録もかねて。
実装例!
notification.swift
import RxSwift
class HogeViewController: UIViewController {
private let bag = DisposeBag()
override func viewDidLoad() {
NotificationCenter.default.rx.notification(.UIApplicationDidBecomeActive)
.subscribe(
onNext: { [weak self] _ in
// アプリに戻ってきた時の処理!
}).disposed(by: bag)
NotificationCenter.default.rx.notification(.UIApplicationDidEnterBackground)
.subscribe(
onNext: { [weak self] _ in
// homeボタンなどで、バックグラウンドに行った時の処理!
}).disposed(by: bag)
}
}
何も使用しないでいると、AppDelegeteでNotificationCenterで各画面に通知、購読の解除……等々を自力で実装しないといけないので。
便利な世の中になったもんだ