web-dev-qa-db-fra.com

Comment définir l'index de segment sélectionné dans UISegmentedControl?

J'essaie d'éviter un crash d'application ici ... J'ai un bouton qui supprimera un segment d'un UISegmentedControl. Si ce bouton est enfoncé et que l'utilisateur a sélectionné le segment à supprimer, le segment sera supprimé et aucune sélection ne sera mise en surbrillance. Cependant, lorsqu'un autre bouton est poussé qui effectue une action qui récupère le selectedSegmentIndex, l'application se bloque.

En bref: existe-t-il un moyen de forcer la sélection d'un segment dans un UISegmentedControl?

edit il semble que l'UISegmentedControl retourne un selectedSegmentIndex de -1 quand aucun segment n'est sélectionné ... voyons ce que je peux faire d'ici.

34
esqew

Utilisez comme ça .. yourSegmentname.selectedSegmentIndex = 1; // ou le segment souhaité

75
neillo

Ce code est pour Swift 2.0

@IBOutlet weak var segmentcontroll: UISegmentedControl!
    @IBAction func segmentneeded(sender: AnyObject)
        {

            if(segmentcontroll.selectedSegmentIndex==0)
            {
                self.view.backgroundColor=UIColor.purpleColor()
                segmentcontroll.selectedSegmentIndex=UISegmentedControlNoSegment
            }
            else if(segmentcontroll.selectedSegmentIndex==1)
            {
                    self.view.backgroundColor=UIColor.yellowColor()
                            segmentcontroll.selectedSegmentIndex=UISegmentedControlNoSegment
            }
            else
            {
                self.view.backgroundColor=UIColor.grayColor()
                            segmentcontroll.selectedSegmentIndex=UISegmentedControlNoSegment
            }
        }
3
Kishore Kumar