Changement de vue -Choisir entre 2 viewController (segue? )

Bonjour à  tous , voilà  


j'ai une petite question . 


 


Je voudrais savoir comment changer de vue mais à  l'issue d'un test. 


 


Je m'explique : 


On va dire que j'ai un menu avec plusieurs options. Pour l'option 3 par exemple, lorsque je clique dessus, je voudrais réaliser un test (requête sur la base de donnée) et suivant le résultat je choisis comme direction soit viewController1 ou alors viewController2 . Comment puis-je réaliser cela? 


 


J'utilise xcode5, je fais souvent mes changements de vues via le storyboard , donc une option d'un menu peut-il avoir plusieurs segue ? 


 


Ou alors, dois-je changer de vue avec du code? Si oui, comment ? 


 


J'espere être assez claire . 


Réponses

  • Un ViewController peut mener à  différents autres ViewControllers.

    Il suffit de mettre plusieurs segues, avec des noms différents et de faire un performSegueWithIdentifier:nomDuSegueQuIlFaut.


  • Bonjour Larme,


    le problème est que lorsque je veux faire plusieurs segues à  partir d'une même cellule d'un tableview (en faisant un crtl glissé), le premier segue est remplacée par le deuxième . 


    Peut on avoir deux segues à  partir d'une cellule d'un menu ?


  • Dans ton cas, tes segues doivent partir non pas d'une cellule de la table view, mais de ton controller directement. Tu peux ainsi créer deux segue qui partent de ton controller vers deux destinations différentes.


     


    Tu feras appel "manuellement" à  tes segue selon les options possibles, dans ton programme. Par exemple :



    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // On imagine qu'on traite une donnee "option" selon la cell qui a ete selectionnee
    if (option==0) {
    [self performSegueWithIdentifier:@Option0 sender:tableView]; // appel manuel au segue
    } else {
    [self performSegueWithIdentifier:@Option1 sender:tableView];
    }
    }

    Puis tu implémentes ton prepareForSegue: comme d'hab.


Connectez-vous ou Inscrivez-vous pour répondre.