2013-03-29 6 views
0

안녕하십니까, 다음 상황에서는 postNotificationName이 호출되지 않습니다. 사용자가 로그인해야하는 버튼을 클릭하면 viewcontrollerA이 표시됩니다. 그래서 나는 로그인을 위해 presentmodal을한다. 그리고 모달을 제시하기 전에 나는 통지를 추가합니다. 사용자가 로그인 한 후 postNotificationName으로 전화 한 다음 모달을 닫습니다. 그러나 관찰자는 결코 부름을받지 않습니다. 또한 나는 관찰자가 호출되는 모달을 기각하지 않는다는 것을 알아 차린다. 어떤 도움이 필요합니까?postNotificationName이 호출되지 않습니까?

+0

아마도 옵저버를 추가 할 때의 타이밍과 관련이 있지만, 알아두면 코드를 게시해야합니다. viewControllerA와이 모달 컨트롤러간에 이러한 알림을 보내시겠습니까? – rdelmar

+0

답장을 보내 주셔서 감사합니다. viewControllerA에 알림을 등록/추가하고이 [[self dismissModalViewControllerAnimated : YES]; [[NSNotificationCenter defaultCenter] postNotificationName : @ "loggedin"객체 : 없음]; modalViewController에서. @rdelmar – veereev

답변

0

모달 컨트롤러가 할당 해제되기 때문에 알림을 추가하기에는 너무 늦었을 것입니다. 어쨌든이 목적을 위해 알림을 사용해서는 안됩니다. 위임자를 사용하거나 직접 viewControllerA에 정보를 전달할 수 있습니다. 모달보기 컨트롤러에서 self.presentingViewController를 사용하여 viewControllerA에 대한 포인터를 얻을 수 있습니다. ViewControllerA에서 BOOL 속성을 가질 수 있으며 (isLoggedIn이라고 함) 모달 뷰 컨트롤러에서 해당 값을 설정하기 직전에 값을 설정할 수 있습니다.

self.presentingViewController.isLoggedIn = YES; 
+0

지옥 주셔서 감사합니다 좋은 점은 그것을 시도합니다 :) – veereev

관련 문제