今天遇到個需求,當app從前臺調到后臺時,再從后臺調回前臺時,要處理一些業務邏輯,我覺得很簡單,如果App的重新出現在界面,那肯定會調用ViewController的- (void)viewWillAppear:(BOOL)animated方法。道理很簡單,不就是跟vc的進棧出棧一樣嗎?于是把一些操作寫在上,運行起來,發現并沒有我們想要的效果。
后來在網上查了一下,發現這樣并不會調用viewWillAppear這個方法
那怎么辦,其實很簡單,iOS已經幫我們做好了一些事,只要我們注冊監聽一下就好了
上代碼
- (void)viewWillAppear:(BOOL)animated{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground)name:UIApplicationWillEnterForegroundNotification object:nil];
}
- (void)applicationWillEnterForeground{
//do u want to do
}
這樣就能在VC中監聽到app從后臺回到前臺了。
最后一定別忘了要remove這個監聽者
- (void)viewDidDisappear:(BOOL)animated{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}