У меня есть контроллер представления "A", который зарегистрирован как наблюдатель, как это,
-(void)viewWillAppear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"localActionTaken" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveLocalActionNotification:) name:@"localActionTaken" object:nil];
}
Я также удаляю наблюдателя в методе Dealloc.
Из контроллера представления «A» пользователь переходит к контроллеру представления «B», где публикуется уведомление «localActionTaken».
Все работает нормально до этого
Теперь у меня есть другой контроллер представления «C», из которого пользователь выталкивается на просмотр контроллера «A» и от «A» до «B». Но проблема в этом «C» -> «A» -> «B», если уведомление срабатывает в «B», то наблюдатель «A» уведомляется дважды!
Пожалуйста, дайте мне знать, если я что-то здесь упустил.
Примечание. Я использую ECSlidingview, а «A» и «C» — это контроллеры вида сверху.
----------------- Обновлять -----------------
Мне пришлось переместить removeObserver в viewWillDisappear на основе проверки конкретных контроллеров представления в стеке.