6

viewWillDisappearクラスの 1 つのメソッドに値を格納するアプリケーションがあります。たとえば、メソッドにデータと時刻を保存し、viewWillAppearメソッドにある場合は同じことを保存するviewWillDisappearので、時間差を比較してこれをログに記録できます。

ただし、ユーザーがデバイスのホーム ボタンを押した場合、viewWillDisappearコードは実行されません。AppDelegateでこの特定のメソッドを呼び出そうとしましたが、メソッドが実際には実行されないapplicationDidEnterBackgroundため、間違った情報が格納されます。viewWillDisappear私もそれらを に保存しようとしましたNSUserDefaultsが、viewWillDisappearメソッドが実行されないため、間違った値が保存されます。

viewWillDisappearユーザーがホームボタンを押すとすぐに、そのビューに対してメソッドを実行する方法はありますか?

4

1 に答える 1

8

viewWillAppear で、この通知を登録します...

-(void)viewWillAppear:(BOOL)animated {

[[NSNotificationCenter defaultCenter] addObserver: self
                                         selector: @selector(appEnteredBackground:)
                                             name: UIApplicationDidEnterBackgroundNotification
                                           object: nil];

}

-(void)viewWillDisappear:(BOOL)animated {

    [[NSNotificationCenter defaultCenter] removeObserver:self];

}

-(void)appEnteredBackground:(NSNotification *)appEnteredBackgroundNotification {

    //do your thing

}
于 2013-11-07T15:11:32.080 に答える