Domanda

, infatti, il titolo contiene la mia domanda. Ho un UISegmentedControl, e la necessità di deselezionare scheda selezionata. Ho provato:

[menu setSelectedSegmentIndex:-1];

menu di essere l'UBOutlet per uisegmentedcontrol ma questo mi dà eccezione. Qualcuno ha qualche idea? Grazie peter

È stato utile?

Soluzione

Parto dal presupposto che avete chiamato [myArray length] invece del corretto [myArray count] da qualche parte nel codice. NSArray utilizza il metodo di conteggio, non di lunghezza per il numero di elementi in esso contenuti.

Altri suggerimenti

Il modo giusto per farlo è:

[menu setSelectedSegmentIndex:UISegmentedControlNoSegment];

Credo che si tenta di creare una selezione momentanea nel controllo segmentato. In Interface Builder impostare il segmentedcontrol alla momentanea. O in codice è possibile fare:

menu.momentary = YES;

Impostazione della segmentedControl al .momentary = YES cambia il modo in cui l'utente può interagire con il segmentedControl. Se si vuole avere niente selezionato inizialmente quando la pagina viene caricata, ma hanno segmentedControl si comportano allo stesso, dopo una selezione viene effettuata da parte dell'utente poi si vuole qualcosa di più simile a questo:

Swift 4 soluzione :

 @IBOutlet weak var segmentedControl: UISegmentedControl!

 self.segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment

A questo punto è possibile farlo in Xcode 6 nel generatore di interfaccia:

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

La soluzione Swift:. @IBOutlet weak var mySegmentedControl: UISegmentedControl! e mySegmentedControl.selectedSegmentIndex = -1

rapida 4

@IBOutlet weak var segmentControl: UISegmentedControl! {
    didSet {
        segmentControl.selectedSegmentIndex = UISegmentedControl.noSegment
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top