Partage
  • Partager sur Facebook
  • Partager sur Twitter

fonction appelée automatique en cas de dépilement

Sujet résolu
    14 février 2013 à 10:52:02

    Bonjour,

    Débutant en programmation IOS, je cherche à savoir depuis un moment les méthodes appelées lors d'un dépilement de vues ou le "dismiss" d'une modal view.

    Je m'explique:

    J'ai un projet contenant une vue de base (rootView) contenant un bouton. Lors de l'appui sur ce bouton, une modalView contenant un scanner est appelée.

    Pour le moment je constate que lors de la fin de session de mon scanner la méthode "- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation" de ma vue principale est appelée.

    Ma question est : Comment définir qu'une méthode soit appelée après que mon scanner soit désactivé.

    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      14 février 2013 à 18:41:01

      En gros tu voudrais appelé une méthode dès que ton scanner a fini son job? Comment fait-tu ton scanner? C'est une classe que tu utilise? Peut-être qu'on delegate est appelé quand c'est fini? Ou bien si tu as accès au source code de ton scanner tu  pourrais implémenter toi-même un delegate?

      Désolé si j'ai pas trop compris ton problème, je trouve ta description assez vague (ou je suis fatigué :p)

      • Partager sur Facebook
      • Partager sur Twitter
        14 février 2013 à 19:26:20

        Tu fais appelle à une méthode qui vérifie l'activité du scanner et sa réponse est traitée en conséquence.

        Sans plus de détails c'est assez dur de t'aider.

        • Partager sur Facebook
        • Partager sur Twitter
          15 février 2013 à 13:58:53

          J'aimerai savoir quelles méthodes sont appelées automatiquement lors d'un retour en arrière dans une navigation entre vue et modal view.

          Pour donner un peut plus de détails, j'ai ma vue de base (RootViewController) et j'appel mon scanner en instanciant une modalView.

          Voici le code pour générer la vue du scanner (le scanner est une méthode propre au code):

          MSScannerController *scannerController = [[MSScannerController alloc] init];
              UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:scannerController];
              
              [self presentModalViewController:navController animated:YES];

          Lorsque je désire arrêter mon scanner j'appel une méthode:

          - (void)dismissAction {
              [_scannerSession stopCapture];
              
              // This is to make sure any pending API search is cancelled
              [_scannerSession cancel];
              [self dismissModalViewControllerAnimated:YES];
          }

          Après quelques recherches j'ai réussi à trouver qu'une méthode de ma RootViewController est appelée après que j'ai arrêté mon scanner (et par la même occasion arrêté ma modalView):

          - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;

          Alki, je peux comprendre que ma question soit vague et j'en suis désolé. Ce que je cherche à savoir est en effet beaucoup plus théorique que du simple code.

          Lorsque l'on empile une ModalView sur une vue principale, lorsque cette ModalView est dépilée, quelle méthode native à la vue principale est appelée.

          Je sais que la vue principale est mise en mémoire tampon (sauf si je me trompe)  mais est-ce qu'au dépilage un reload cette dite vue, on appel une autre méthode pour la réactiver ou autre.

          Je suis désolé si je suis difficile à comprendre mais n'hésitez pas à me reposer des questions que je puisse repréciser ma demande.

          Et merci pour votre attention et votre aide.

          • Partager sur Facebook
          • Partager sur Twitter
            15 février 2013 à 18:16:15

            Tout est objet dans Obj-C donc à priori tu n'auras qu'un accès trop limité à ces fonctions appelées lors d'un changement de vue.

            Par contre je peux te conseiller de passer par un segue et un prepareForSegue

            • Partager sur Facebook
            • Partager sur Twitter
              17 février 2013 à 4:49:51

              Tu as possiblement la méthode viewDidLoad (si la vue avait été désallouée), ainsi que le viewWillAppear et par la suite le viewDidAppear.

              Ai-je bien compris ta question?

              • Partager sur Facebook
              • Partager sur Twitter
                25 février 2013 à 14:32:58

                Tu as bien compris JFGagnon !

                Merci beaucoup !

                • Partager sur Facebook
                • Partager sur Twitter

                fonction appelée automatique en cas de dépilement

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown