2015-09-10 2 views
0

Je sais que vous pouvez écouter des notifications pour un tel état d'application, mais ... est-il possible de savoir de cette façon?Comment savoir si viewWillAppear: ou viewDidAppear: sont appelés parce que l'application passe en arrière-plan?

J'ai besoin de savoir quand la vue va disparaître car une autre vue est affichée, et non parce que l'application passe en arrière-plan.

Merci

+0

la méthode des deux ci-dessus pas appelé si votre application va fond, r u essayer pour les notifications de connaître l'état d'application –

+0

Je reçois pas votre question clairement –

+0

@ Anbu.Karthik ma question, j'edited – AppsDev

Répondre

0

viewWillAppear: et viewDidAppear: ne seront pas appelés quand l'application va arrière-plan/retour à l'avant comme l'état de la vue par rapport à l'application ne change pas.

vous ne pouvez observer les notifications UIApplicationDidEnterBG/willEnterFG


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

REMARQUE: si vous ajoutez des observateurs dans willAppear et les enlever didDisappear vous pouvez willDisappear faux/viewDidAppear vous

0

Vous voulez dire viewWillDisappear? Si oui, quand l'application va à l'arrière-plan, viewWillDisappear ne serait pas appelée, ainsi est viewDidDisappear, vous pouvez observer les notifications comme @ Daij-Djan a dit.

A propos viewWillDisapper, Apple dit

Cette méthode est appelée en réponse à une vue supprimé d'une hiérarchie de la vue. Cette méthode est appelée avant que la vue ne soit réellement supprimée et avant que les animations ne soient configurées.

0

Vous devez créer un UIApplicationWillEnterForegroundNotification dans votre méthode de ViewController viewDidLoad et chaque fois que l'application revient de fond que vous pouvez faire ce que vous voulez faire dans la méthode enregistrées pour la notification. ViewController viewWillAppear ou viewDidAppear ne sera pas appelée lorsque l'application reviendra de l'arrière-plan au premier plan.

-(void)viewDidLoad{ 
    [[NSNotificationCenter defaultCenter] addObserver:self     
              selector:@selector(doYourMethod) 
               name:UIApplicationWillEnterForegroundNotification 
               object:nil]; 
} 

-(void)doYourMethod{ 
// do whatever you want to do when app comes back from background. 
} 

N'oubliez pas de ne pas inscrire la notification pour laquelle vous êtes inscrit.

-(void)dealloc { 
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
}