iOS App 從背景回到前景時呼叫 ViewController

一般來說當 App 從背景回到前景的時候,會在 AppDelegate.m 呼叫
-(void)applicationDidBecomeActive:(UIApplication *)application
這行來通知 App 回到前景,可以做些相對應的動作,例如,如果有接 Facebook Login,此時會呼叫
[FBAppEvents activateApp];
來通知 Facebook SDK 說使用者已經完成(或取消)登入。

但是這無法通知某個正在前景的 ViewController 做些相對應的動作,透過 AppDelegate 加上一些複雜的程式可以辦到,不過另一個更簡單的方式是監聽 NSNotificationCenter 的 UIApplicationDidBecomeActiveNotification 事件:

[[NSNotificationCenter defaultCenter]addObserver:self
selector:@selector(viewDidBecomeActive)
name:UIApplicationDidBecomeActiveNotification
object:nil];

當收到 UIApplicationDidBecomeActiveNotification 事件時,呼叫自訂的 viewDidBecomeActive 函式,就可以收到 App resume 的通知,進行相對應的動作了!