8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Swift】iOSアプリがフォアグラウンドになった時に、更新処理をさせてみたい!

Posted at

#きっかけ
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日は悩みましたので自分用メモとして残しておきます。
呪文の内容はさっぱりですので引用元をご確認ください。
#最後に
タイトルではフォアグラウンドって書いてますが
バックグラウンド移行時でも処理できますよ
処理を思いつかないですけど…。

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?