Сценарий У меня есть два контроллера вида: Tabcontroller и Viewcontroller. В первом я определяю свое сообщение, а во втором я добавил наблюдателя с методом получения.Центр NSNotification работает только во второй раз? TabbarController to NavigationController
На мой tabcontroller (отправитель):
-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
[[NSNotificationCenter defaultCenter] postNotificationName:@"RestartBtn" object:self userInfo:@{@"isHidden": @"YES"}];
}
На viewcontoller (приемник):
- (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];
}
Когда я нажимаю на моем tabbaritem он будет толкать контроллер представления и будет печатать «HallOfFameView», и я считаю, что зарегистрирует наблюдателя, но не выполняет метод уведомления о получении в первый раз только во второй раз. Например, когда я нажимаю элемент табуляции («Главная»), он будет выполнять метод уведомления о получении.
Почему не работает в первый раз? и почему он будет работать, когда уже выйдет из viewcontroller, где я буду ожидать работы (именно там я добавляю своего наблюдателя).
Ниже мой ответ работает? – user3182143