2011-08-20 7 views
1

내 앱에는 버튼이 있습니다. 사용자가 클릭하면 사용자의 위치를 ​​가져 오는 모달보기 컨트롤러가 나타납니다 (UIActivityIndicator 및 이미지 사용). 위치 정보가 있으면 위치 정보를 다른 응용 프로그램으로 보냅니다.응용 프로그램이 활성화 될 때 모달보기 컨트롤러 제거

다시 태블릿으로 돌아 가면 앱이 다시 이전 상태로 다시 시작되기 때문에 이전 기기 (멀티 태스킹이없는 경우)에서 잘 작동합니다.

그러나 멀티 태스킹 장치에서 앱을 다시 시작하면 사용자에게 위치를 알려주는보기가 아직 남아 있습니다.

첫 번째 아이디어는 BOOL이 다른 앱으로 시작될 때 BOOL을 설정 한 다음 viewDidAppear에서 BOOL이 true면 모달 뷰를 닫는 것입니다.

앱을 다시 시작할 때 viewDidAppear이 호출되면 작동합니다. 방금 배웠던 것처럼, 그렇지 않습니다.

보기 컨트롤러가 해당보기에서 활성 상태로 다시 시작할 때 응답 할 수있는 방법이 있습니까? 아니면 앱 위임자와 함께 위임 등을 설정해야합니까? 그렇다면 어떻게 할 수 있는지 설명 할 수 있습니까?

답변

5

앱이 활성화되면 modalviewcontroller에 알림을 보낼 수 있습니다. 나는 이것이 가장 쉬운 방법이라고 생각한다.

// Into the app delegate 
- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"ApplicationDidBecomeActive" object:nil]; 
} 

// Into your modal view controller register it for the given notification 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidBecomeActive:) name:@"ApplicationDidBecomeActive" object:nil]; 

- (void)applicationDidBecomeActive:(NSNotification *)notification 
{ 
//... 
} 

그렇지 않으면 당신은의 Info.plist 파일에 YES로 "UIApplicationExitsOnSuspend"키를 설정하여 응용 프로그램의 배경 모드를 해제 할 수 있습니다.

관련 문제