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