0

私はiPhoneの通知に関して少し初心者です。

私がやろうとしているのはこれです: UIImageView に基づくクラスを使用するオブジェクトがあります。このクラスには、touchbegan、touchesended などの独自の実装があります。

ユーザーがいつオブジェクトから指を離したかをメインプログラムが知ることは可能ですか? つまり、クラスからメイン アプリケーションのビュー コントローラへの通知を (クラスを使用して) 作成して、メソッドを起動することは可能ですか? メソッドは、クラスではなく、メイン アプリケーションにある必要があります。

これは可能ですか?例を挙げていただけますか?

助けてくれてありがとう。

4

1 に答える 1

1

-touchesEnded:、次のステートメントのようなものを追加します (handleTouchesEndedNotification通知に使用する一意の名前に変更します)。

[[NSNotificationCenter defaultCenter] postNotificationName:@"handleTouchesEndedNotification" object:nil userInfo:nil];

メイン、アプリケーション デリゲート、またはその他のクラスで、クラスが初期化される次のステートメントを追加します。このステートメントは、上記で使用した一意の名前で通知をリッスンします。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleMyNotification:) name:@"handleTouchesEndedNotification" object:nil];

さらにクラスに、メソッドとロジックを追加します。

- (void) handleMyNotification:(NSNotification *)notification {
    // do stuff...
}

通知とともにデータを渡したい場合は、オブジェクトを作成しNSDictionary、通知のuserInfo変数をこのディクショナリ オブジェクトに設定します。

于 2009-09-05T10:17:26.653 に答える