2010-01-22 4 views
3

내 응용 프로그램에서이 기능을 구현하고 싶지만이 코드 줄을 사용하는 방법을 알 수없는 것 같습니다.누군가가 전화 할 때 게임 일시 중지

- (void)applicationWillResignActive:(UIApplication *)application { 
//our app is going to loose focus since there is an incoming call 
[self pauseGame]; 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application{ 
//the user declined the call and is returning to our app 
[self resumeGame]; 
} 

나는이 appdelegates에 위치해야하지만 난 게임이의 ViewController 현재 때 난 내 일시 정지 조치를 호출 할 수있는 방법을 알아낼 질수 읽었습니다.

감사합니다.

답변

6

메시지를 자체 (앱 대리인)에게 보내는 대신보기 컨트롤러로 보냅니다. 앱 대리인이 (방법이 구현 된 일시 중지하고 다시 시작) "gameViewController"라는 메인 게임 뷰 컨트롤러에 대한 속성을 가지고있는 경우

예를 들어, :

- (void)applicationWillResignActive:(UIApplication *)application { 
    // our app is going to loose focus since there is an incoming call 
    [self.gameViewController pauseGame]; 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application { 
    // the user declined the call and is returning to our app 
    [self.gameViewController resumeGame]; 
} 
+0

괜찮아. 집에 돌아 왔을 때 나중에 시도해 보겠습니다. 고마워요 gerry3. – Drahc

+0

나는 당신이 말한 것을 시도했지만 지금은 많은 오류가 발생하고 있습니다. 문제는 내 메인 gamelogic은 mymainViewController가 아니라 오히려 자체 xib 파일에 별도의보기입니다. "구조 또는 노동 조합이 아닌 무언가에 회원을 요청"하고 있습니다. 감사. – Drahc

+0

"gameViewController"라는 이름을 사용하여 게임 컨트롤러에있는보기 컨트롤러가 일시 중지 및 다시 시작하기위한 메서드를 넣는 것이 합리적임을 나타냅니다. 일반적으로이 오류는 속성을 정의하지 않았거나 속성과 함께 헤더를 가져 오지 않았 음을 의미합니다. – gerry3

1

나는 이것이 대답 한 것을 알고있다 옛날에. 그러나 이해 관계자 (예 : UIViewController)가 UIApplicationDidEnterBackgroundNotification 및 UIApplicationWillEnterForegroundNotification에 관심을 갖도록하는 것이 다른 (확장 성이 뛰어난) 솔루션이라는 것을 추가하고 싶습니다.

이 접근법은 응용 프로그램 대리인이 배경/전경 입력에 응답해야 할 수도있는 개체를 직접 알 필요가 없다는 이점이 있습니다.

관련 문제