Удалить наблюдателя уведомлений из другого контроллера представления
Привет, я разрабатываю приложение для 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];
}
Недостающая часть: Вы должны установить свойство где-нибудь. Где это сделать, зависит от вашего кода.