Удалить наблюдателя уведомлений из другого контроллера представления

Привет, я разрабатываю приложение для Iphone, в котором я регистрирую одного наблюдателя уведомлений для UIApplicationWillEnterForegroundNotification. Теперь я хочу удалить это из другого контроллера представления. Мой код выглядит

[[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(applicationBecomeActive)
 name:UIApplicationWillEnterForegroundNotification
 object:nil]; 

И я создаю один метод для удаления наблюдателя:

-(void) removeObserver
{
  [[NSNotificationCenter defaultCenter] removeObserver:self]; 
} 

и я вызываю этот метод из другого контроллера представления, но он не работает. Я думаю, что я должен хранить наблюдателя. Но я не знаю, как это сделать. Нужна помощь. Спасибо.

1 ответ

Второй контроллер представления нуждается в ссылке на экземпляр первого контроллера представления. Давайте предположим, что это удерживается в свойстве:

@property (nonatomic, strong) FirstViewControler *firstViewController;

Тогда ваш код для удаления контроллера первого вида в качестве наблюдателя будет выглядеть так:

- (void)removeObserver
{
    [[NSNotificationCenter defaultCenter] removeObserver:self.firstViewController]; 
}

Недостающая часть: Вы должны установить свойство где-нибудь. Где это сделать, зависит от вашего кода.

Другие вопросы по тегам