我只是不明白,我已经使用了通知时间,但今天我似乎无法收到从特定对象发送的通知。 这是在一个视图控制器......
- (void)buttonPressed:(UIButton*)sender {
NSLog(@"buttonPressed");
[[NSNotificationCenter defaultCenter] postNotificationName:@"test" object:self];
}
这是在另一个视图控制器(在init中)..
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test:) name:@"test" object:nil];
和方法..
-(void)test:(NSNotification *)notification{
NSLog(@"it works! ");
}
...只是标准的东西,现在如果我从任何其他对象发布通知它工作正常,只是不会从这一个视图控制器发布!它甚至记录“buttonPressed”,因此它不像按钮坏了。我只是不明白。
有什么想法吗?
答案 0 :(得分:0)
这是您通过在Interface Builder中拖放创建的视图控制器吗?如果是这样,则不会调用-init
方法(-initWithCoder
将是)。但是,如果您需要从界面设置内容,请覆盖-awakeFromNib
方法并将设置代码放在那里。
答案 1 :(得分:0)
您是否尝试过传递nil而不是self作为对象:发送时的参数?我认为nil意味着你会得到每个通知都有这个名字,但事实并非如此。
此外,尝试在发送之前订阅通知,看看是否会调用该通知。