2012-02-05 2 views
3

앱이 활성화 될 때 UIApplicationDidBecomeActiveNotification을 사용하여 테이블 뷰를 새로 고칩니다. 내 문제는 내 ViewWillAppear 있음,이 메서드는 또한이 테이블의 데이터를 새로 고치려면 호출하고있다.viewWillAppear 및 UIApplicationDidBecomeActiveNotification

이로 인해 응용 프로그램 실행시 테이블이 두 번 새로 고쳐집니다. 앱을 처음 시작할 때 어떻게 그 중 하나를 실행하지 못하게 할 수 있습니까? 테이블을 새로 고치면 네트워크 및 로컬 데이터에 대한 집중적 인 처리가 이루어 지므로이 작업을 한 번만 수행하면됩니다.

감사합니다.

답변

0

플래그를 지정하면 실행 당 1 회만 실행되므로 didFinishLaunching에 설정할 수 있습니다.

+0

보기가 나타날 때마다 실행하는 것이 필요합니다. 따라서 앱이 잠자 던 상태에서 돌아와서보기에 있다면 .. 실행해야합니다. 그리고 언제든지 견해가 항해됩니다. 나는 'viewwillappear'가보기가 잠에서 되돌아 왔을 때 발화 될 것이라고 생각했다. 그러나 그렇지 않다. 그 깃발을 세우면이 논리에 대한 내 전화가 한 번만 발사 될 수 있다고 생각합니다. 아니면 뭔가 빠졌는가? 감사. – mtb

+0

나는 이것을 다시 생각해야했다 ... 고마워. 귀하의 솔루션이 작동합니다. – mtb

6

당신은 UIApplicationWillEnterForegroundNotification 대신 UIApplicationDidBecomeActiveNotification를 사용해야합니다.

후자는 앱이 활성화 될 때마다 게시됩니다 (초기 시작, 통화 후 앱으로 돌아 가기/SMS 중단 등). 그러나 전자는 백그라운드에서 깨어 난 경우에만 게시됩니다. 이 경우 viewWillAppear이 호출되지 않습니다 (첫눈에 보이는 것처럼).