2013-07-17 3 views
1

시간이 0 인 카운트 다운 타이머가 하나 있습니다. 타이머가 0에 도달하고 제출 버튼을 클릭하면 타이머가 멈추지 만 애플리케이션을 나가서 다시 돌아올 때 타이머가 멈추지 않습니다. viewWillAppearinvalidate에 타이머를 만들려고했는데 viewWillDisappear에 타이머가 생성되었지만 백그라운드에서 돌아와 타이머가 계속 실행 중입니다. 백그라운드로 입장 할 때 타이머를 멈추는 방법? 어떤 표본?백그라운드로 들어가면 타이머를 멈추는 방법은 무엇입니까?

감사

+0

내가 u는 응용 프로그램 위임 .IN에하려고 생각합니다 - (무효)의 applicationDidEnterBackground :와 : (UIApplication *) 응용 프로그램 { // 공유 리소스를 해제 사용자 데이터를 저장, 타이머 무효화, 충분히 응용 프로그램 상태 정보를 저장하기 위해이 방법을 사용 나중에 종료 될 경우 응용 프로그램을 현재 상태로 복원 할 수 있습니다. // 응용 프로그램이 백그라운드 실행을 지원하는 경우 사용자가 종료 할 때 applicationWillTerminate : 대신이 메서드가 호출됩니다. } – Kasaname

답변

0

NSNotificationCenter을 사용할 수 있습니다. UIApplicationDidEnterBackgroundNotification에 대한 옵서버를 추가하고 타이머를 중지하십시오. 이 경우 AppDelegate에서 타이머를 생성 할 필요가 없습니다.

+0

샘플 코드를 제공해 주시겠습니까? – Kalvin

+0

오케이, 알겠습니다. 이제 작동! 감사 – Kalvin

0

당신은 사용할 수 있습니다 AppDelegate에 클래스의

- (void)applicationDidEnterBackground:(UIApplication *)application 

방법은 시간을 정지합니다. 그러나이를 위해서는 appDelegate 클래스 내에 타이머를 선언해야합니다. 또한 배경으로 가면 카운터를 유지해야합니다.

그런 다음 viewWillAppear: 메서드를 사용하여 타이머를 다시 시작할 수 있습니다.

관련 문제