2012-04-11 7 views
0

私はUINavigationControllerを使用して、表示コントローラの変更を制御します。 A1とA2の両方が私のカスタムView Controller Aのインスタンスです。 Aは通知を登録しており、通知を受信するとUIをリフレッシュします。iOS通知受信:いくつかの缶と他のものはできません

私の問題は:
私はA2に通知を掲載し、A2はそれを受け取ることができます。
しかし、A1にポップアップすると、A1に変更はありません。

だから私はそれをどのように修正する手助けができますか?

私が通知を使用する理由は、Aのいくつかのインスタンスをプッシュして、いずれかが通知をポストすると、スタック内の他のインスタンスも更新する必要があるということです。

+0

タグを使用してタグ値を設定し、タグID ... – parag

+0

を使用してチェックインします。ただし、viewcontrollerもnsnotificationもタグ値を持っていません... – scorpiozj

+0

通知の登録/登録解除の方法は? – Costique

答えて

0

あなたの問題は次のとおりです。 私の問題は、私がA2に通知を掲示し、A2がそれを受け取ることができることです。しかし、私がA1にポップアップすると、A1に変化はありません。

A1にポップアップすると、その時点でA2の割り当てが解除され、そこに作成された通知/リスナーも削除され、通知に応答しなくなります。 これで、A1でも通知を聞きたい場合は、オブザーバーもA1に追加する必要があります。

+0

いいえ、それぞれをviewdidloadに登録します。 Xcodeを再起動しても問題ありません。すべて同じですよ! – scorpiozj

0

だけの推測が、

あなたはのviewDidLoadで、通知のために登録されていますかviewDidAppear:? viewDidUnload:またはviewDidDisappear:で登録を解除していますか?

通常、表示コントローラは表示されている間だけ通知に関心があるため、通知に登録するためには表示/非表示メソッドを使用することをお勧めします。

どちらの方法を使用しても、登録と登録解除の呼び出しが一致するUIViewControllerメソッドになっていることを確認してください。

+0

ビューコントローラには表示されていることだけが通知されますか? – scorpiozj

+0

それは目に見えないかどうかは関係ありません – scorpiozj

+0

いいえ、私は、あなたがviewDidLoad:でaddObserver:を呼んでいるなら、あなたがviewDidUnload:ではなくviewObjDisPar:でremoveObserver:を呼び出していることを確認しています。 –

0

Xcode(4.3.1(4E1019))を再起動しても通知が届きません。

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

ところで、オブジェクトは割り当て解除されていなければ通知を受け取ります。

関連する問題