2012-05-05 3 views
2

3 개의 뷰 컨트롤러가있는 탭 막대 앱이 있는데 어떤 뷰가 opend인지를 감지하기 위해 "viewWillAppear"를 사용합니다.앱 열림 감지?

앱을 닫을 때 여전히 "백그라운드에서"작동하며 앱을 다시 열면 "viewWillAppear"가이 열림을 감지하지 못합니다.

이 개구부를 감지하는 다른 옵션이 있습니까? 감사합니다

답변

5

첫째, 당신은 UIApplicationDelegate

  • 에 필요한 위임 방법을 볼 수 폐쇄되었지만 여전히 독에 있다면, 당신은 그들을 다시 엽니 다. 응용 프로그램에 들어가기 전에 전이 상태에서,이 메소드를 호출합니다 : 당신이 그들을 폐쇄하기 전에 응용 프로그램이 완전히 이전 상태에 표시

    - (void)applicationWillEnterForeground:(UIApplication *)application

  • . 당신은 당신이 applicationDidBecomeActive에서 구현해야 viewWillAppear에 뭔가가 당신이 원하는 작업을 수행하기 위해 현재보기 또는 다른 어떤 메시지를 보낼 수행하려는 경우

    - (void)applicationDidBecomeActive:(UIApplication *)application

: 드디어 thid 메소드를 호출 응용 프로그램이 활성화 된 후

+0

구현 방법에 대한 링크를 알려주시겠습니까? – CroiOS

+0

여기에 있습니다 : http://stackoverflow.com/questions/4919950/applicationwillenterforeground-reload-data-from-viewcontroller 도움을 주신 모든 분들께 – CroiOS

+0

행복한 코딩을 도와 드리겠습니다! – Sakares

1

앱을 백그라운드에서 다시 시작하면 applicationWillEnterForground: 메서드가 전송됩니다. 심지어 일시 중지되면 applicationDidEnterBackground:이 표시됩니다.

8

UIApplicationWillEnterForegroundNotification을 관찰하거나 applicationWillEnterForeground:을 앱 대리인에 구현할 수 있습니다. 신청 후

- (void)applicationDidEnterBackground:(UIApplication *)application

  • 있다 : 당신은 현재 열려있는, 그것은이 메소드를 호출 가까운 응용 프로그램이 때

  • 0
    - (void)applicationWillEnterForeground:(UIApplication *)application { 
    NSLog(@"app will enter foreground"); 
    [viewController refresh:NULL]; 
    } 
    

    나는 이것이 효과가 있다고 생각합니다. 앱 위젯에이 글자를 씁니다