2013-11-07 2 views
6

У меня есть приложение, которое хранит значения в методе в одном из моих классов. Например, я храню данные и время в методе viewWillAppear, а также то же самое, когда в методе viewWillDisappear, поэтому я могу сравнить разницу во времени и записать это.Call viewWillDisappear когда пользователь закрывает приложение ios

Однако, если пользователь нажимает кнопку «домой» на устройстве, тогда код viewWillDisappear не запускается. Я попытался вызвать этот конкретный метод в AppDelegate's applicationDidEnterBackground, но это хранит неверную информацию, поскольку метод фактически не запущен. Я также попытался сохранить их в NSUserDefaults, но опять же, поскольку метод viewWillDisappear не запускается, тогда сохраняются неправильные значения.

Есть ли способ сделать метод viewWillDisappear для этого представления, как только пользователь нажмет свою домашнюю кнопку?

ответ

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 

} 
+0

Thankyou очень –

+1

'viewWillAppear:' и 'viewWillDisappear:' оба должны вызвать супер в какой-то момент. –

Смежные вопросы