#きっかけ
iOSアプリがフォアグラウンドになった時に更新処理をさせてみたかったのでググったら
下記のページが出てきた。
【Swift】iOSアプリがフォアグラウンドになった時に、ViewControllerで更新処理をする
これを参考にXcode 10.1、swift 4.2.1 で試してみたのですが…。
fixしまくってもエラーが吐かれてしまうので解決したものを記事にしてみました。
まだまだ駆け出しで何をしていいのか判らずに切り貼りしてみました
#コード
いきなりですがコード全文です。
ViewController.swift
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(
self,
selector: #selector(ViewController.viewWillEnterForeground(_:)),
name: UIApplication.willEnterForegroundNotification,
object: nil)
NotificationCenter.default.addObserver(
self,
selector: #selector(ViewController.viewDidEnterBackground(_:)),
name: UIApplication.didEnterBackgroundNotification,
object: nil)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@objc func viewWillEnterForeground(_ notification: Notification?) {
if (self.isViewLoaded && (self.view.window != nil)) {
print("フォアグラウンド")
}
}
@objc func viewDidEnterBackground(_ notification: Notification?) {
if (self.isViewLoaded && (self.view.window != nil)) {
print("バックグラウンド")
}
}
}
#変更箇所は少し
fixしまくった上で…。どこをどう変更したかは全把握はできてませんが
###引用元
NotificationCenter.default.addObserver(
self,
selector: #selector(ViewController.viewWillEnterForeground(_:)),
name: NSNotification.Name.UIApplicationWillEnterForeground,
object: nil)
###今回のコード
NotificationCenter.default.addObserver(
self,
selector: #selector(ViewController.viewWillEnterForeground(_:)),
name: UIApplication.willEnterForegroundNotification,
object: nil)
name:の行が一番変わってるかな?
たったこれだけで3日は悩みましたので自分用メモとして残しておきます。
呪文の内容はさっぱりですので引用元をご確認ください。
#最後に
タイトルではフォアグラウンドって書いてますが
バックグラウンド移行時でも処理できますよ
処理を思いつかないですけど…。