iPhone - Starten von Selektoren aus einer anderen Klasse
-
30-09-2019 - |
Frage
Ich mag eine Tabellenansicht neu zu laden, die in einer anderen Klasse namens „WriteIt_MobileAppDelegate“ von einem meiner anderen Klassen, die „Eigenschaften“ aufgerufen wird. Ich habe versucht, dies über die NSNotificationCenter Klasse zu tun -. Das Protokoll wird aufgerufen, aber die Tabelle wird nie aktualisiert
Properties.h:
[[NSNotificationCenter defaultCenter] postNotificationName:@"NameChanged"
object:[WriteIt_MobileAppDelegate class]
userInfo:nil];
WriteIt_MobileAppDelegate.m
- (void) awakeFromNib {
[[NSNotificationCenter defaultCenter] addObserver: Selbst Selektor: @selector (reloadItProperties :) Name: @ "NameChanged" Objekt: self];
}
- (void) reloadItProperties: (NSNotification *)notification {
NSLog(@"Reloading Data"); //this gets called
[[self navigationController] dismissModalViewControllerAnimated:YES];
[self.navigationController popToRootViewControllerAnimated:YES];
[self.tblSimpleTable reloadData];
[self.tblSimpleTable reloadSectionIndexTitles];
// but the rest doesn't
}
Was mache ich hier falsch?
Lösung
Scheint, wie Sie den object
Parameter falsch verwenden:
addObserver: Selektor: Name: Objekt:
notificationSender
Das Objekt, das Meldungen der Beobachter will erhalten;
Das heißt, nur Meldungen eingesandt von diesem Absender werden geliefert der Beobachter. Wenn Sie passieren Null, die Notification Center verwendet nicht ein Benachrichtigung des Absenders zu entscheiden, ob es den Betrachter zu liefern.