Senden Sie die NSNotifikation von Classa an ClassB
-
25-10-2019 - |
Frage
Lösung
In Klasse A: Veröffentlichen Sie die Benachrichtigung
[[NSNotificationCenter defaultCenter] postNotificationName:@"DataUpdated"
object:self];
In Klasse B: Registrieren Sie sich zuerst für die Benachrichtigung und schreiben Sie eine Methode, um sie zu verarbeiten.
Sie geben den entsprechenden Selektor der Methode an.
// view did load
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleUpdatedData:)
name:@"DataUpdated"
object:nil];
-(void)handleUpdatedData:(NSNotification *)notification {
NSLog(@"recieved");
[self.tableView reloadData];
}
Andere Tipps
Ok, ich füge Vince's Antwort ein bisschen mehr Informationen hinzu
In Klasse A: Veröffentlichen Sie die Benachrichtigung
[[NSNotificationCenter defaultCenter] postNotificationName:@"DataUpdated"
object:arrayOfPurchasedObjects];
In Klasse B: Registrieren Sie sich zuerst für die Benachrichtigung und schreiben Sie eine Methode, um sie zu verarbeiten.
Sie geben den entsprechenden Selektor der Methode an. Make sure your class B is allocated before you post the notification otherwie notification will not work.
- (void) viewDidLoad {
// view did load
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleUpdatedData:)
name:@"DataUpdated"
object:nil];
}
-(void)handleUpdatedData:(NSNotification *)notification {
NSLog(@"recieved");
NSArray *purchased = [notification object];
[classBTableDataSourceArray addObjectsFromArray:purchased];
[self.tableView reloadData];
}
- (void) dealloc {
// view did load
[[NSNotificationCenter defaultCenter] removeObserver:self
name:@"DataUpdated"
object:nil];
[super dealloc];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow