9
votes

Quelle méthode UIViewController est appelée lors de l'ouverture de l'application de l'arrière-plan?

Y a-t-il une manière conventionnelle de déterminer si une vue est chargée à partir de l'application en mode arrière-plan?

in 3.x, je vous fierais sur la vueDidLoad pour faire une certaine initalisation, etc., cependant, ce n'est pas le cas pour 4.x, car vous ne pouvez pas compter sur la méthode de la vue ViewDidLoad à appeler.

J'aimerais éviter de mettre des drapeaux supplémentaires pour la détecter dans l'Appdelegate, je préférerais utiliser une manière fiable de le faire dans l'UIViewController, mais je ne peux pas sembler trouver quoi que ce soit dans le cycle de vie d'un UIViewController qui pourrait m'aider ici.

Des idées? Comment gérez-vous de telles situations?


0 commentaires

3 Réponses :


-6
votes
- (void)viewDidLoad

3 commentaires

Oui, je sais que Viewwillappear sera appelé comme le nom le suggère, je ne peux pas baser le comportement sur cette méthode, car il sera également appelé par le cadre lorsque les vues sont sautées de la pile pour montrer celui dont nous parlons. Désolé si cela n'était pas clair de mon post original.


@KASPA - En fait, la viewwillappear n'est pas appelée lors de son retour d'arrière-plan ( Stackoverflow.com/questions/5277940/... )


Viewwillappear ne s'appelle pas.



3
votes

Le cycle de vie de UIViewController n'a aucune méthode qui sera appelée lors du déplacement d'une application de l'arrière-plan au premier plan.

Lorsque vous souhaitez que cet événement déclenche un bloc de code spécifique, vous devez ajouter un observateur de notification nommée . Nom.UIAPPLICATIONWillenterForeForeFore . Un exemple de ce serait: xxx

Gardez à l'esprit que vous devrez supprimer l'observateur pour l'empêcher de déclencher tout au long de l'application.


0 commentaires

6
votes

SWIFT 5

Abonnez-vous à la notification P>

    override func viewWillDisappear(_ animated: Bool) {
            super.viewWillDisappear(animated)

            NotificationCenter.default.removeObserver(self)
    } 


0 commentaires