Je travaille dans xcode 7.2 en essayant de faire un projet. Donc, j'ai deux viewcontrolers: dans le premier j'ai 5 boutons. Dans le second, j'ai une étiquette et un contrôle segmenté.

Donc ce que je voulais faire, c'est changer l'étiquette et le titre du contrôle segmenté (titre des boutons) en fonction du bouton sur lequel j'appuie dans le premier VIewController.

Par exemple, si j'appuie sur le bouton A, dans le contrôleur de seconde vue, l'étiquette indiquera "Vous avez appuyé sur le bouton A" et les 3 boutons du contrôle segmenté devraient dire "A", "B", "C". Mais si j'appuie sur le bouton B, dans le contrôleur de seconde vue, l'étiquette dira "Vous avez appuyé sur le bouton B" et les 3 boutons du contrôle segmenté doivent dire "D", "E", "F".

Quelqu'un peut-il m'aider?

-1
fr0zt 24 déc. 2015 à 04:24

3 réponses

Meilleure réponse

Pour être plus précis sur l'utilisation de prepareForSegue:

Une option est:
1. Donnez à votre segue un identifier sur storyboard
2. Dans prepareForSegue, vérifiez segue.identifier pour voir si cela correspond au identifier approprié que vous venez de définir
3. S'il correspond, vous pouvez accéder au contrôleur de vue de destination, comme ceci:

var vc = (ViewNoteViewController) segue.destinationViewController  

4. Utilisez vc et accédez à vos libellés et contrôles segmentés à partir de là (en supposant que vous ayez fait IBOutlets)

0
Haroldo Gondim 24 déc. 2015 à 02:27

Vous pouvez transmettre des données via une séquence.

Dans le contrôleur de vue dans lequel vous souhaitez accéder, configurez une variable appelée title.

Second View Controller:<br>
    var vcTitle:String = ""

Ensuite, dans votre premier VC, ajoutez:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
  if (segue.identifier == "secondViewControllerSegue") {
    // pass data to next view
    // Create a variable called pressedButtonTitle that is set after the user presses a segment
    let destinationController = segue.destinationViewController as! SecondViewController;
    destinationController.vcTitle = pressedButtonTitle;


  }
}
0
Idan Magled 25 avril 2016 à 19:05

Créez un protocole sur le premier contrôleur de vue qui est confirmé dans le deuxième contrôleur de vue afin que chaque fois que vous appuyez sur un bouton dans le premier contrôleur de vue, vous pouvez utiliser ce délégué et informer l'autre contrôleur de vue de l'état de vue modifié.

0
Sana 24 déc. 2015 à 01:30