2017-06-16 4 views
0

こんにちは私はreveal view Controller私のアプリケーションで使用しています。すべてのシナリオで正常に動作します。問題は通知を呼び出す際に発生します。私はreveal viewに6つのフロントビューコントローラを持っていました。すべてでview controllers私は同じ名前の通知を宣言しました。私はこの通知をSWrevealViewController.mファイルから呼びました。現在、すべてのView Controllerで通知アクションが呼び出されました。実際には、ビューコントローラがアクティブ状態にある場合、またはアクティブビューコントローラの背後にある場合にのみ呼び出される通知です。SWRevealViewControllerを使用中に通知の問題

残りのビューコントローラを少なくとも1回開いた場合に問題が発生します。私がそれらを開いていなければ、通知はそのビューコントローラで呼び出されません。

+0

あなたの質問はわかりません実際には、ビューコントローラがアクティブ状態にあるか、アクティブビューコントローラの背後にある場合にのみ呼び出される通知です。 残りのビューコントローラを少なくとも1回開いた場合に問題が発生します。私がそれらを開いていなければ、通知はそのビューコントローラで呼ばれませんでした。 ' –

+0

Ok。右側のテーブルには、仕事、カード、プロフィール、住所がありました。ジョブを選択すると、ジョブビューコントローラが表示されます。私はすべての4つのビューコントローラで通知を宣言しました。今私は仕事の画面です。今私はRevealビューから通知を呼び出し、通知はジョブビューでのみ起動する必要があります。しかし、それはすべての4つのビューを呼び出した。@ Anbu – phani

+0

あなたの通知addobserver、postnotificationと関連コードを表示することができます –

答えて

0

あなたは同じ名前の通知を宣言したと言っているので、あなたはそれを変更する必要があります!それ以外の場合は、すべてのViewControllerで呼び出されます。ここであなたは1つのビューコントローラに通知を追加している。例えば

のような、

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

あなたの通知の名前がNotifyTouploadImageであるあなたは

、別のViewControllerにあなたのようにそれを変更することができ、別のViewControllerに同じ名前を維持することはできません
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(notifyTouploadImage:) 
              name:@"NotifyTouploadImage2" 
              object:nil]; 
+0

sry lionは良い習慣ではありません。複数の時間と呼ばれるobeserverを削除しないと、質問者コードを待つのが良いでしょう。同じコードを最適化することができます。 –

+0

通知の名前が異なる必要があることを説明しています。 1つはオブザーバーを削除する必要があります!しかし、ここで私が言及していない理由は、主な懸念ではありません!問題は通知の名前と同じです! @ Anbu.Karthik – Lion

+0

Revealビューのコントローラで名前が異なる場合、通知を呼び出す間に行の数が増えました。 – phani