2015-02-11 112 views
8

在Android上,當我編寫應用程序時,我需要實現onResume/onPause以便我的活動轉到後臺並從前臺返回。如果我需要如何對iOS做同樣的事情,我已經使用Google搜索了。但我找不到任何有用的東西。你能告訴我,我需要做些什麼來處理我的iOS應用程序進入後臺並回到前臺?onResume/onPause在iOS應用程序上

謝謝。

+0

我希望能解決這個問題,看看我的回答是否正確。 – 2016-09-02 19:30:35

回答

9

有一個專用類,它接收通常稱爲XXXApplicationDelegate的這些事件的委託回調(來自應用程序實例本身)。

在那裏您需要爲應用程序生命週期實現委託方法。

- (void)applicationWillResignActive:(UIApplication *)application { 
} 

- (void)applicationDidEnterBackground:(UIApplication *)application { 
} 

- (void)applicationWillEnterForeground:(UIApplication *)application { 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application { 
} 

- (void)applicationWillTerminate:(UIApplication *)application { 
} 
+0

問題涉及控制器生命週期而不是應用程序生命週期。 – 2016-09-02 19:29:23

+0

我想''onPause' /'onResume'最接近,例如,從'applicationDidEnterBackground' /'applicationWillEnterForeground'發佈[通知](https://developer.apple.com/documentation/foundation/nsnotificationcenter)並接收他們從控制器。 – 2018-02-28 10:28:25

2

您想在應用程序生命週期中查看Apple documentation。具體而言,您對application:didFinishLaunchingWithOptions:applicationDidBecomeActive:applicationDidEnterBackground感興趣。

+0

問題涉及控制器生命週期而不是應用程序生命週期 – 2016-09-02 19:29:35

+0

多次發佈相同的評論並不能使其更加正確。 – 2016-09-02 20:26:21

+0

你是對的! – 2016-09-02 20:29:23

4

您正在尋找

override func viewDidDisappear(animated: Bool) {} 

對於在onPause

override func viewDidAppear(animated: Bool) {} 

爲的onResume

其他答案指的是應用程序生命週期Ç與控制器(Android中的活動)回調相對的allbacks。

+3

這根本不正確。 OP明確要求「我需要做些什麼才能處理我的iOS應用程序,並將其轉回到前臺?」 您引用的兩種方法不對應於BACK/FORG應用,而是任何視圖控制器的根視圖生命週期,這是完全不同的事情。 – 2016-09-03 18:00:51

+1

也許你應該看看有關特定方法的Android文檔以及它們的功能。 onResume和onPause與活動相關,而不是與應用程序生命週期相關。此外還提到了問題中的活動。如果這是語義問題,那麼它就是2。爲什麼不檢查你的答案? – 2016-09-03 18:45:11

+0

爲了說清楚,即使在來回切換應用程序或關閉和打開屏幕時,每當活動進入前臺時,都會調用Android的'onResume'。另一方面,當控制器視圖第一次出現在屏幕上時,iOS'viewDidAppear'只被調用一次。 – 2018-02-28 10:13:34