UISegmentedControl deselect (ne fait aucun des segments sélectionnés)

en fait le titre contient ma question. J’ai un UISegmentedControl et je dois désélectionner l’onglet actuellement sélectionné. J’ai essayé:

[menu setSelectedSegmentIndex:-1]; 

le menu étant le UBOutlet pour uisegmentedcontrol mais cela me donne une exception. quelqu’un a une idée? merci Peter

Je suppose que vous avez appelé [myArray length] au lieu du [myArray count] approprié quelque part dans votre code. NSArray utilise la méthode count, pas la longueur pour le nombre d’éléments qu’il contient.

La bonne façon de faire est de:

 [menu setSelectedSegmentIndex:UISegmentedControlNoSegment]; 

Je suppose que vous essayez de créer une sélection momentanée dans le contrôle segmenté. Dans le générateur d’interface, définissez le segmentedcontrol sur momentary. Ou dans le code que vous pouvez faire:

 menu.momentary = YES; 

La définition de segmentedControl sur .momentary = YES modifie la manière dont l’utilisateur peut interagir avec segmentedControl. Si vous souhaitez que rien ne soit sélectionné initialement lorsque la page se charge mais que segmentedControl se comporte de la même manière après qu’une sélection a été effectuée par l’utilisateur, vous voudrez quelque chose de plus:

Solution Swift 4 :

  @IBOutlet weak var segmentedControl: UISegmentedControl! self.segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment 

Vous pouvez maintenant le faire dans xcode 6 dans le générateur d’interface:

Deselect the 'Selected' option under segmented control behaviour in atsortingbutes inspector.

La solution Swift: @IBOutlet weak var mySegmentedControl: UISegmentedControl! et mySegmentedControl.selectedSegmentIndex = -1 .