Scénario i possède deux contrôleurs de vue: Tabcontroller et Viewcontroller. Dans le premier je définis ma notification post et dans la seconde j'ai ajouté un observateur avec une méthode de réception.NSNotification Center ne fonctionne que dans un deuxième temps? TabbarController to NavigationController
Sur mon tabcontroller (expéditeur):
-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
[[NSNotificationCenter defaultCenter] postNotificationName:@"RestartBtn" object:self userInfo:@{@"isHidden": @"YES"}];
}
Sur le viewcontoller (récepteur):
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"HallOfFameView");
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:@"RestartBtn" object:nil];
}
-(void)receiveNotification:(NSNotification*)notification {
NSLog(@"%@",[notification name]);
_restartbutton.hidden=YES;
NSLog(@"%@",notification.userInfo[@"isHidden"]);
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter removeObserver:self name:@"RestartBtn" object:nil];
}
Quand je clique sur mon tabbaritem il poussera un contrôleur de vue et va imprimer "HallOfFameView" et je crois que cela enregistrera l'observateur mais n'exécutera pas la méthode de notification de réception à la première fois seulement une deuxième fois. Par exemple, lorsque je clique sur l'élément de la barre d'onglets ("Accueil"), il va exécuter la méthode de notification de réception.
Pourquoi ne travaille pas la première fois? et pourquoi cela fonctionnera quand j'ai déjà quitté le viewcontroller où je m'attends à travailler (c'est là que j'ajoute mon observateur).
Ci-dessous mes œuvres de réponse? – user3182143