2012-01-30 72 views
0

我有一個倒數計時器。在最近的測試中,我注意到,如果我點擊主頁按鈕並返回到應用程序,計時器就會關閉(更少的秒數會超過應該的時間)。ViewDidAppear主頁按鈕

我注意到在測試中,ViewDid和ViewWill出現在重新打開應用程序時不會觸發。我知道:

- (void)applicationWillEnterForeground:(UIApplication *)application 

火,但我如何使它特定於某個部分的viewController是活動的?

回答

3

您可能需要applicationDidBecomeActive:applicationWillResignActive:,它們被髮送到您的應用程序委託。還可以發佈通知(例如UIApplicationDidBecomeActiveNotification),您可以聽。

時,例如,系統警報進來的那些也張貼。如果你只是想,當你要去後臺被告知,嘗試applicationDidEnterBackground:applicationWillEnterForeground:

有關詳細信息,請參閱Apple Docs on lifecycle

0

只是爲了跟進,因爲上面的問題得到了回答。

我的問題與Eric完全相同,然後我實現了Jesse關於在代表上使用applicationDidBecomeActive:的建議。我只是想知道如何所有的不同方法被調用,我發現這一點:

  1. application:didFinishLaunchingWithOptions:被稱爲在起步時,符合市場預期。
  2. 然後,是主視圖控制器的viewDidLoad轉。
  3. 然後調用viewWillAppear:
  4. 回到應用程序委託中,applicationDidBecomeActive:被觸發(這裏我稱之爲我在主視圖控制器中實現的reactivateTimer方法)。
  5. 執行reactivateTimer方法。
  6. 最後一步是呼叫主視圖控制器的viewDidAppear: