1. ホーム
  2. ios

[解決済み] applicationDidBecomeActiveの処理 - "アプリがActiveになったとき、ビューコントローラーはどのように対応すればよいのでしょうか?"

2022-04-14 08:38:32

質問

私は UIApplicationDelegate プロトコルは、メインのAppDelegate.mクラス内で applicationDidBecomeActive メソッドが定義されています。

アプリケーションがバックグラウンドから戻ったときに、あるメソッドを呼び出したいのですが、そのメソッドは別のビューコントローラーにあります。現在どのビューコントローラが表示されているのかを確認するには applicationDidBecomeActive メソッドを呼び出した後、そのコントローラ内のメソッドを呼び出すことができますか?

どのように解決するのですか?

アプリケーション内のどのクラスも、アプリケーション内のさまざまな通知のための "オブザーバー" になることができます。ビューコントローラを作成 (あるいはロード) したら、そのクラスを UIApplicationDidBecomeActiveNotification で、その通知がアプリケーションに送信されたときに呼び出したいメソッドを指定します。

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(someMethod:)
                                             name:UIApplicationDidBecomeActiveNotification object:nil];

後始末を忘れずに! 視界が悪くなったら、観察者としての自分を外すことを忘れないでください。

[[NSNotificationCenter defaultCenter] removeObserver:self 
                                                name:UIApplicationDidBecomeActiveNotification
                                              object:nil];

の詳細については、こちらをご覧ください。 通知センター .