9

ビューがバックグラウンド モードのアプリから読み込まれているかどうかを判断する便利な方法はありますか?

3.XI では、viewDidLoad に依存して初期化などを行いますが、viewDidLoad メソッドの呼び出しに依存できないため、これは 4.X には当てはまりません。

appdelegate でこれを検出するために余分なフラグを設定することは避けたいと思います。むしろ、UIViewController でこれを行う信頼できる方法を使用したいと思いますが、UIViewController のライフサイクルで私を助けることができるものを見つけることができないようです。

何か案は?そのような状況にどのように対処しますか?

4

3 に答える 3

6

スイフト5

通知を購読する


       NotificationCenter.default.addObserver(self, selector: #selector(appMovedToForeground), name: UIApplication.willEnterForegroundNotification, object: nil)

        @objc func appMovedToForeground() {
            //Your code here
        }

通知を削除


    override func viewWillDisappear(_ animated: Bool) {
            super.viewWillDisappear(animated)

            NotificationCenter.default.removeObserver(self)
    } 

于 2020-03-26T13:57:04.640 に答える
-6
- (void)viewWillAppear:(BOOL)animated

しかしそうではない

- (void)viewDidLoad

アプリケーション デリゲート メソッド

- (void)applicationWillEnterForeground:(UIApplication *)applicationUIApplicationDelegate

いずれかのビューにオブザーバーを追加できますが、アプリケーションがフォアグラウンドに入った後に呼び出されUIApplicationWillEnterForegroundNotificationます。

于 2010-09-04T18:53:10.753 に答える