2009-06-22 38 views

risposta

11

In Interface Builder quando si seleziona l'oggetto UISegmentedControl sull'interfaccia utente, quindi nel riquadro degli attributi, nel controllo del segmento c'è il menu a discesa del segmento, selezionare il segmento che si desidera selezionare (0,1 e così via) e selezionare "selezionato" opzione sotto di esso.

+0

Ciò non cambia il valore predefinito !!!! –

+1

Oh ya clicca l'opzione selezionata. Io vedo. Grazie. –

39

Da codice, è sufficiente eseguire self.segmentedControl.selectedSegmentIndex = someDefaultIndex.

Se è necessario impostarlo su viewDidLoad: o meno dipende interamente dalla struttura dell'applicazione. Ad esempio, se la tua app è in fase di avvio e carica la vista per la prima volta e deve impostare il controllo su qualunque valore abbia avuto durante la precedente esecuzione dell'app, allora ha sicuramente senso farlo lì.

+0

+1 Grazie! Funziona come un incantesimo! –

0

Se non si utilizzano gli storyboard e si desidera impostare un indice predefinito dopo alcune impostazioni/reti come me, questo piccolo frammento selezionerà qualcosa se l'utente non lo ha. L'ho inserito nella sottoclasse di UISegmentedControl, ma è possibile posizionarlo ovunque. (Swift 3)

Decl: var UISegmentedControlNoSegment: Int { get } 
Desc: A segment index value indicating that there is no selected segment. See selectedSegmentIndex for further information. 

Versione corta:

if selectedSegmentIndex == UISegmentedControlNoSegment { 
    selectedSegmentIndex = initialIndex 
} 

Longer versione

func reloadData() { 
    guard let numberOfItems = dataSource?.numberOfItems() else { 
     return 
    } 

    removeAllSegments() 

    for index in 0...numberOfItems { 
     insertSegment(with: $image, at: index, animated: false) 
    } 

    if selectedSegmentIndex == UISegmentedControlNoSegment { 
     selectedSegmentIndex = initialIndex 
    } 
} 
0

Dopo aver fatto clic sul controllo Segmentato, vai a dove hai creato i segmenti e scegli quello che vuoi essere predefinito. Poi sotto ci sarà una scatola con "Selezionato" da essa. Selezionalo e sarà predefinito.

Problemi correlati