0

「アプリケーションがアクティブになりました」( が呼び出されたときに呼び出される) などのアプリケーション デリゲート-applicationDidBecomeActive:applicationメッセージを Windowに表示したい。

1 つの方法は、以下のように通知センターを使用することです。

AppDelegate.m

NSNotification *n = [NSNotification notificationWithName:@"AppBecameActive" object:self];
[[NSNotificationCenter defaultCenter] postNotification:n];

ViewController.m

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(showMessageAppBecameActive) name:@"AppBecameActive" object:nil];

この方法は、アプリケーション デリゲート メッセージを表示する唯一の方法ですか? または、現在のView Controllerインスタンスを表示するプロパティなど、他の方法はありますか?

ご親切にありがとうございました。

4

2 に答える 2

0

appDelegateからViewControllerにアクセスできる場合。(@property またはインスタンスがその中に存在するようなものです) メッセージをすぐに送信できます。そのようなアクセス権がない場合。単一トンのキー値オブザーバーを作成し、 viewControllerが変更を受信できるようにします。

于 2014-03-18T07:18:20.527 に答える
-1

通知が必要なviewControllerに以下のコードを登録してください。

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

iOS フレームワークは、アプリがアクティブになると通知を送信します。上記の方法で登録すると、登録されたメソッド (この場合は yourMethod) で通知を処理できます。

于 2012-08-27T04:40:20.917 に答える