4

タブベースのアプリのタブにUIViewControllerがあり、UIApplicationDelegateを接続します。UIApplicationDelegateでアプリイベントを処理したいのですが、UIViewControllerで取得できず、メソッドが呼び出されません。

UIViewControllerのインターフェイス宣言に接続する以外に何をすべきですか?

@interface TestViewController : UIViewController<UIApplicationDelegate>
@end

他のデリゲートは動作します。これを除いて、私はそれらを処理できます。UIApplicationとそのデリゲートには、些細な「トリック」が必要ですが、見つかりませんでした。

ありがとう!

4

1 に答える 1

9

さまざまなアプリケーションイベントに応答するためにアプリデリゲート以外のクラスが必要な場合は、他のクラスにさまざまなアプリケーション通知を登録してもらいます。

たとえば、バックグラウンドに入るアプリを処理するには、次のようにします。

// Put this in the class that needs to deal with entering the background
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(backgrounding) name:UIApplicationDidEnterBackgroundNotification object:nil];

UIApplicationすべての通知のリストについては、ドキュメントを参照してください。

deallocクラスのメソッドでオブザーバーを削除することを忘れないでください。

于 2013-01-10T00:48:48.123 に答える