2017-10-02 1 views
0

J'ai deux ViewControllers. Lorsque j'appuie sur un bouton sur le FirstViewController, le SecondViewController apparaît. Lorsque j'appuie sur un bouton sur le SecondViewController, le FirstViewController réapparaît. Le problème est que la vue sur le FirstViewController ne se charge plus. La boucle ViewDidLoad ne se charge plus. Je veux créer une boucle, qui vérifie une variable à chaque fois que le FirstViewController apparaît.Xcode Swift ViewDidLoad

+4

Possible duplication de [Vous cherchez à comprendre le cycle de vie iOS UIViewController] (https://stackoverflow.com/questions/5562938/looking-to-understand-the-ios-uiviewcontroller-lifecycle) –

+0

peut-être le '-viewWillAppear (_ :) 'est votre portée souhaitée; Si vous êtes intéressé par le cycle de vie des contrôleurs de vue (__you êtes! __), prenez le temps de lire les [documents Apple à ce sujet] (https://developer.apple.com/documentation/uikit/uiviewcontroller) . – holex

Répondre

1

viewDidLoad n'est appelée que lorsque la vue est chargée pour la première fois. On dirait que vous cherchez la méthode viewDidAppear (ou viewWillAppear) qui est appelée à chaque fois que la vue vient d'être (viewDidAppear) ou est sur le point d'apparaître (viewWillAppear).

Vous êtes donc probablement à la recherche de l'une ou l'autre de ces méthodes. Vous voudrez peut-être regarder le schéma this page pour plus d'informations

0

appel de méthode viewDidLoad lorsque vous ajoutez une instance de UIViewController en Navgation Stack.

Je suppose que vous connaissez déjà Navigation Stack.

Lorsque vous affichez FirstViewController de SecondViewController cela signifie que vous avez fait une chose de deux façons possibles

1. VousSecondViewController de Navigation Stack de cette façon ViewDidLoad de FirstViewController ne sera jamais appeler parce FirstViewController déjà chargé dans la mémoire. Dans ce cas, ViewDidAppear et ViewWillAppear vont s'exécuter. Parce que ces méthodes appellent toujours à chaque fois que la vue apparaît à l'écran.

2. Vous avez créé une autre instance de FirstViewController sur SecondViewController et pousser par exemple l » FirstViewController sur Navigation Stack. De cette manière, une nouvelle instance de FirstViewController sera ajoutée et ViewDidLoad sera appelée automatiquement. Et une boucle de FirstViewController et SecondViewController sera automatiquement créé.

J'espère que vous comprenez maintenant pourquoi la méthode ViewDidLoad n'a jamais appelé pour vous.