swift4でRxSwiftを使用して、ViewControllerからアプリのバックグラウンド、復帰のイベントを取得する
アプリを制作していると、アニメーションとか、諸々のデータ処理ですとか……そういったロジックが沢山あると思います。
そんな中、ホームに戻る時には該当の処理を止めて、アプリに戻ってきたら処理を再開させる……とか、そういった処理をたまに実装しないといけなくなったりします。
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)
}
}
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で各画面に通知、購読の解除……等々を自力で実装しないといけないので。
便利な世の中になったもんだ
Author And Source
この問題について(swift4でRxSwiftを使用して、ViewControllerからアプリのバックグラウンド、復帰のイベントを取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/fumihiko-hidaka/items/44b292a06cd5af57ac25著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .