Frage

in der Tat enthält der Titel meiner Frage. Ich habe einen UISegmentedControl und müssen aktuell ausgewählte Registerkarte deaktivieren. Ich habe versucht:

[menu setSelectedSegmentIndex:-1];

Menü ist die UBOutlet für UISegmentedControl aber das gibt mir Ausnahme. jemand eine Idee haben? Vielen Dank Peter

War es hilfreich?

Lösung

Ich würde davon ausgehen, dass Sie [myArray length] statt der richtigen [myArray count] irgendwo im Code genannt habe. NSArray verwendet die Zählmethode, nicht Länge für die Anzahl der Elemente, die sie enthält.

Andere Tipps

Der richtige Weg, dies zu tun ist:

[menu setSelectedSegmentIndex:UISegmentedControlNoSegment];

Ich glaube, Sie versuchen, eine momentane Auswahl in segmentierten Steuerelement zu erstellen. In Schnittstelle Setbauer die segmentedcontrol momentanen. Oder in Code können Sie tun:

menu.momentary = YES;

die segmentedControl Einstellung auf .momentary = YES ändert sich die Art und Weise der Benutzer mit dem segmentedControl interagieren können. Wenn Sie möchten, zunächst nichts, wenn die Seite geladen wird, ausgewählt haben, aber haben segmentedControl gleich verhalten nach einer Auswahl durch den Benutzer gemacht wird, dann werden Sie etwas mehr wie diese wollen:

Swift 4 Lösung :

 @IBOutlet weak var segmentedControl: UISegmentedControl!

 self.segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment

Sie können dies jetzt tun in Xcode 6 in dem Interface Builder:

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

Die Swift-Lösung. @IBOutlet weak var mySegmentedControl: UISegmentedControl! und mySegmentedControl.selectedSegmentIndex = -1

swift 4

@IBOutlet weak var segmentControl: UISegmentedControl! {
    didSet {
        segmentControl.selectedSegmentIndex = UISegmentedControl.noSegment
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top