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];
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 de comptage et non la longueur du nombre d'éléments qu'il contient.
La bonne façon de faire est:
[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 contrôle segmenté sur momentané .
menu.momentary = YES;
Définir segmentedControl sur .momentary = YES
modifie la façon dont l'utilisateur peut interagir avec segmentedControl. Si vous souhaitez que rien ne soit sélectionné initialement lors du chargement de la page mais que segmentedControl se comporte de la même manière après la sélection de l'utilisateur, vous souhaiterez un résultat plus semblable à celui-ci:
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 attributes inspector.
La solution Swift: @IBOutlet weak var mySegmentedControl: UISegmentedControl!
et mySegmentedControl.selectedSegmentIndex = -1
.
Swift 4
@IBOutlet weak var segmentControl: UISegmentedControl! {
didSet {
segmentControl.selectedSegmentIndex = UISegmentedControl.noSegment
}
}