В принципе, у меня есть view1, который в какой-то момент вызывает view2 (через presentModalViewController:animated:
). Когда нажата некоторая UIButton
в view2, view2 вызывает метод уведомления в представлении1 и сразу же после этого отклоняется. В методе уведомления появляется предупреждение.
Метод уведомления работает нормально и называется соответствующим образом. Проблема заключается в том, что каждый раз, когда создается view1 (должно существовать только одно представление1), я предположительно создаю еще один NSNotification
, потому что, если я перехожу из view0 (меню) в view1, а затем назад и вперед несколько раз, Я получаю серию одного и того же предупреждающего сообщения один за другим из метода уведомления столько раз, сколько я открыл view1.
Вот мой код, пожалуйста, скажите мне, что я делаю неправильно:
View1.m
-(void) viewDidLoad {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(showAlert:)
name:@"alert"
object:nil];
}
-(void) showAlert:(NSNotification*)notification {
// (I've also tried to swap the removeObserver method from dealloc
// to here, but it still fails to remove the observer.)
// < UIAlertView code to pop up a message here. >
}
-(void) dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
View2.m
-(IBAction) buttonWasTapped {
[[NSNotificationCenter defaultCenter] postNotificationName:@"alert"
object:nil];
[self dismissModalViewControllerAnimated:YES];
}
-(void) dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}