あるビューから別のビューに切り替えると、ロードされようとしているビューに通知を呼び出してコンテンツを更新するという 2 つのビューがあります。奇妙なことに、ビューが初めてロードされるときは 1 回呼び出され、次回は 2 回呼び出されるということです。ビューが読み込まれるたびに追加され続けるためだと結論付けました。dealloc は呼び出されないため、まだそこにあり、追加し続けます。
この問題を解決するために追加される前に、通知が存在するかどうかを確認する方法はありますか?
これが私のviewDidLoadにあるものです
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ReloadGridNotification:) name:@"ReloadOHGridView" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ReloadBadgeNotification:) name:@"reloadBadge" object:nil];
そして私のdealloc:
[[NSNotificationCenter defaultCenter] removeObserver:self];
ありがとう!
コールトン
編集1:
ビューを UINavigationController に表示し、ビューを切り替えます。別のビューを更新するコードは次のとおりです。
- (void)viewWillDisappear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] postNotificationName:@"reloadBadge" object:self];
}