2014-07-21 1 views
-1

응용 프로그램이 백그라운드 모드로 들어가고 사임 할 때 내 응용 프로그램 대리인의 "pauseGame"이라는 BPGameController 클래스에서 인스턴스 메서드를 실행하고 인스턴스 메서드가 "resumeGame"인 경우 응용 프로그램은 다시, 나는 몇 가지 다른 일을 활성 해봤된다하지만 다음과 같이 아무도 알림에 가입 BPGameController의의 viewDidLoad 방법에서 지금까지 나를 위해응용 프로그램 대리자의 인스턴스 메서드 사용

+0

기존 'BPGameController' 인스턴스에 대한 참조를 가져 와서 메소드를 호출하십시오. –

+3

왜 앱 위임자가이 작업을 수행하고 있습니까? 컨트롤러가 관련 알림에 대신 응답하도록 설정하십시오. – rmaddy

답변

0

을 일하지 않은 :

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pauseGame) 
              name:UIApplicationDidEnterBackgroundNotification object:nil]; 

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resumeGame) 
              name:UIApplicationDidBecomeActiveNotification object:nil]; 

당신이 자신을 제거 할 때 관찰에서.

[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; 
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil]; 
+0

감사합니다. 많이 작동했습니다. –

+0

이 답변의 중요한 부분은 빠져 나갔습니다. 'dealloc' 메소드에서 옵저버를 제거해야합니다. 그렇지 않으면 앱이 충돌 할 가능성이 있습니다. – rmaddy

+0

더 완벽한 답변을 위해 추가했습니다. – hackerinheels