iOS App 獲取從后臺返回前臺時的頁面
產品美美的給小伙伴提了一個需求,當程序從后臺進入前臺時,如果是指定的頁面,則彈出提示框。
大家首先想到的方法就是通過 AppDelegate.h 進行控制,相對復雜的步驟就是 在程序進入后臺時對當前頁面進行存儲,然后在從后臺進入前臺再判斷是否是符合條件的頁面,判斷是否彈框。基本思想就是這樣
然后 我就開始需找新的方法,然后我就開始了新的實踐
新方法 比較適用于匹配頁面較少的情況, 對單個UIViewController進行監聽
方法來源:http://www.shangxueba.com/jingyan/1844939.html
上面的方法 把監聽放在了
- (void)viewDidLoad
銷毀監聽放在
-(void)dealloc
但是這樣做有個問題,因為只有在頁面真正銷毀時才會調用 -(void)dealloc 這樣有很多情況頁面沒有銷毀,但是也沒有顯示在當前窗口(比如 push新頁面進入,舊頁面不會銷毀)
所以我把監聽添加和銷毀的位置進行了移動
-(void)viewDidAppear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(someMethod:)
name:UIApplicationDidBecomeActiveNotification object:nil];
}
-(void)viewDidDisappear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
這樣子 就可以保證只有在當前頁面顯示的時候調用監聽啦
問題基本解決,可能還有漏洞 或是更好的方法,歡迎添加
浙公網安備 33010602011771號