2013-06-16 6 views
8

アプリがアクティブになったときapplicationDidBecomeActiveメソッドが呼び出されます、私は特定のUIViewControllerのために、この方法を行うことができます方法はありますか?私は、ビューコントローラのviewDidAppearがある知っているが、私は、アプリが再びアクティブになり、一定のUIViewControllerにあるときに呼び出されるメソッドを探しています。どうすればこれを達成できますか?applicationDidBecomeActive in UIViewController?

答えて

29

あなたはUIApplicationDidBecomeActiveNotification通知を聞くことができます。

@implementation CertainViewController 

- (void)viewWillAppear:(BOOL)animated { 
    [[NSNotificationCenter defaultCenter] 
    addObserver:self 
    selector:@selector(applicationDidBecomeActiveNotification:) 
    name:UIApplicationDidBecomeActiveNotification 
    object:[UIApplication sharedApplication]]; 
} 

- (void)viewWillDisappear:(BOOL)animated { 
    [[NSNotificationCenter defaultCenter] 
    removeObserver:self 
    name:UIApplicationDidBecomeActiveNotification 
    object:[UIApplication sharedApplication]]; 
} 

- (void)applicationDidBecomeActiveNotification:(NSNotification *)notification { 
    // Do something here 
} 

@end 
+0

オーバーライドメソッド内部のスーパーへの呼び出しを追加してください。 – Ecil

+1

ヘッダーから: - (void)viewWillAppear:(BOOL)animated; //ビューが表示される直前に呼び出されます。デフォルトは何もしない 'と' - (void)viewWillDisappear:(BOOL)animated; //ビューが閉じられたり、覆われたり、隠されたりすると呼び出されます。デフォルトは何もしない。したがって、「スーパー」と呼ぶ必要はありません。 – yonosoytu

関連する問題