2009-11-17 28 views
0

我只是不明白,我用通知trillon時間,但今天我似乎無法得到通知發送從一個特定的對象。 這是一個視圖控制器...在什麼情況下會通知不發帖?

- (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

我放棄!我浪費了兩天的時間。確實非常非常奇怪。我重寫了它,並使用了代表團。除此之外,其他所有通知都可以正常工作。奇怪的。! – user139816 2009-11-18 10:30:18

回答

0

這是您通過在Interface Builder中拖放創建的視圖控制器嗎?如果是這樣,那麼將不會調用-init方法(即-initWithCoder)。但是,如果您需要從界面設置東西,請覆蓋-awakeFromNib方法並將您的設置代碼放在那裏。

+0

對不起,這是我愚蠢地縮寫我的解釋。 'addObserver'後有一個日誌,那段代碼運行良好。 這就是所有的日誌火災的事情,並在正確的順序,但沒有通過通知溝通。我很困惑。我將重寫整個事情,看看是否有任何東西跳出來...... – user139816 2009-11-17 16:05:20

0

您是否嘗試過在發送時爲對象傳遞nil而不是self:參數?我以爲沒有意味着你會得到這個名字的每一個通知,但可能並非如此。

此外,嘗試訂閱通知之前,你發送它,看看是否被調用。

+0

添加觀察者時,他確實使用nil,所以通知不會被過濾爲僅包含具有特定對象的通知。用對象發佈通知不應改變接收方式。 – 2009-11-17 17:59:08

+0

這就是我的想法,但嘗試並不會讓人感到痛苦,並且可能會讓他想到他可能做錯的其他事情。 – 2009-11-18 16:25:53

相關問題