2012-02-12 5 views

답변

3

1) 타이머는 뷰에 의해 관리되지 않고 뷰의 컨트롤러에 의해 관리되어야합니다. 타이머 자체는 UI의 고유 한 부분이 아니며 타이머의 디스플레이 만 있습니다. 예를 들어,보기가 제거 된 후에도 타이머를 계속 유지하려는 경우 어떻게됩니까?)

2) 모든 개체 (보기 또는 컨트롤러 포함)가 적절한 알림을 독립적으로 수신 할 수 있습니다. 예를 들어, 뷰 컨트롤러 (또는 코드보기, 그 경로를 이동하도록 선택하는 경우) : 통지를 처리 ​​할 방법

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(pauseTheTimer:) 
              name:UIApplicationWillResignActiveNotification 
              object:nil]; 

는 그런 다음 pauseTheTimer를 구현한다. (UIApplication 개체가 하나뿐이므로 표시된대로 개체에 nil을 사용할 수 있습니다.)

이 방법을 사용하면보기 및보기 컨트롤러에서 응용 프로그램 대리인을 분리 할 수 ​​있습니다.

(보기 언로드 또는 해제 될 때 아, 관찰을 중지하는 것을 잊지 마세요. 그리고 충돌로 이어질 것입니다 수 있습니다 그렇지 않으면합니다.)

+0

이 그 선택이 자동으로 willResignActive이 때문에의 전송 될 때 호출됩니다 name 나는 그것을 줄 것인가, 아니면'applicationWillResignActive'에서 수동으로 통지를 보내야합니까? – Chris

+0

자동으로 실행됩니다 - 선택기를 선택하게됩니다 (예 : pauseTheTimer :)하지만 핵심 부분은 알림 이름입니다. UIApplication.h를 살펴보면, 위임 메소드와 이름이 겹치는 알림을 볼 수 있습니다. 목록 시작 부분에 주석이 있습니다. "//해당 대리인 메시지가 호출 된 후이 알림이 전송됩니다." –

+0

Conak! – Chris

관련 문제