NSNotificationCenter помочь?

У меня есть класс для чтения штрих-кода, и когда я читаю штрих-код, я отправляю уведомление в NSNotificationCenter, как показано ниже.

-(void)barcodeData:(NSString *)barcode type:(int)type {

    barcodeValue = barcode;

    [[NSNotificationCenter defaultCenter] postNotificationName:@"BarcodeRead" object:self];

}

затем в нескольких контроллерах представления я добавляю наблюдателя, чтобы получить значение штрих-кода как как.

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


-(void) BarcodeRead
{
    //
}

вопрос в том, когда уведомление отправляется в центр уведомлений, во всех представлениях, которые я добавляю наблюдателю, они получают уведомление и вызывают метод BarcodeRead, но я хочу, чтобы приложение находилось в контроллере представления "A", просто A получало уведомление и не все из них.

спасибо за любую помощь

2 ответа

Решение

Я обычно помещаю регистрационный / незарегистрированный код в viewWillAppear / viewWillDisappear методы, чтобы уведомления отображались только в контроллере, пока он активен.

Тогда у вас должны быть объекты, которые не должны получать уведомления, отмените регистрацию в качестве наблюдателей, как только они выйдут за пределы экрана (конечно, перерегистрируйте, когда они вернутся на экран).

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