在什么情况下通知不会发布?

时间:2009-11-17 13:42:15

标签: iphone cocoa cocoa-touch notifications

我只是不明白,我已经使用了通知时间,但今天我似乎无法收到从特定对象发送的通知。 这是在一个视图控制器......

- (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”,因此它不像按钮坏了。我只是不明白。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这是您通过在Interface Builder中拖放创建的视图控制器吗?如果是这样,则不会调用-init方法(-initWithCoder将是)。但是,如果您需要从界面设置内容,请覆盖-awakeFromNib方法并将设置代码放在那里。

答案 1 :(得分:0)

您是否尝试过传递nil而不是self作为对象:发送时的参数?我认为nil意味着你会得到每个通知都有这个名字,但事实并非如此。

此外,尝试在发送之前订阅通知,看看是否会调用该通知。