2009-11-17 2 views
0

난 이해가 안 돼, 내가 trillon 시간 알림을 사용했지만 오늘은 특정 개체에서 보낼 알림을받을 것 같습니다. 이것은 뷰 컨트롤러에 ...통지가 게시되지 않는 상황은 무엇입니까?

- (void)buttonPressed:(UIButton*)sender { 
NSLog(@"buttonPressed"); 
[[NSNotificationCenter defaultCenter] postNotificationName:@"test" object:self]; 
} 

이것은 (초기화에) 다른 뷰 컨트롤러이다 ..

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test:) name:@"test" object:nil]; 

상기 방법 ..

-(void)test:(NSNotification *)notification{ 
NSLog(@"it works! "); 
} 

... 그냥 표준 물건, 지금 내가 잘 동작하는 다른 개체에서 알림을 게시하는 경우이 한보기 컨트롤러에서 게시 못해! 심지어 "buttonPressed"를 기록하기 때문에 버튼이 깨진 것처럼 보이지 않습니다. 나는 단지 그것을 얻지 않는다.

아이디어가 있으십니까?

+0

나는 굴복한다! 나는 이것에 대해 이틀을 낭비했다. 정말 아주 이상합니다. 나는 그것을 재 작성하고 대신 위임을 사용했다. 내 모든 다른 알림은이 것을 제외하고는 완벽하게 작동합니다. 기묘한.! – user139816

답변

0

Interface Builder에서 드래그 앤 드롭하여 만든보기 컨트롤러입니까? 그렇다면 -init 메서드는 호출되지 않습니다 (-initWithCoder). 그러나 인터페이스에서 물건을 설정해야하는 경우 -awakeFromNib 방법을 재정 의하여 설정 코드를 입력하십시오.

+0

미안하지만, 내 설명을 어리 석음으로 요약하고 있습니다. 'addObserver'다음에 로그가 있는데 그 코드가 정상적으로 실행됩니다. 모든 로그가 실행되고 올바른 순서로 알림이 전송됩니다. 나는 당황 스럽다. 나는 무엇이든지 나에게 뛰어 오르는 지보기 위해 모든 것을 다시 쓰려고 할 것이다 .... – user139816

0

보내실 때 object : argument 대신 self 대신 nil을 전달해 보셨습니까? 나는 그 이름으로 당신이 모든 통지를받을 것이라는 것을 의도하지 않았다고 생각했지만 그것이 사실이 아닐 수도 있습니다.

또한 보내기 전에 알림을 구독하고 전화가 왔는지 확인해보십시오.

+0

그는 관찰자를 추가 할 때 nil을 사용하기 때문에, 통지는 필터링되지 않고 특정 객체와 함께 만 포함된다. 개체에 알림을 게시하면받는 방법이 변경되어서는 안됩니다. –

+0

그게 제가 생각한 것입니다. 그러나 시도하는 것이 결코 아프지 않으며, 그가 잘못하고있는 다른 것을 생각하게 될 수도 있습니다. –