Ho un UISegmentedControl con due segmenti (indice: 0 e 1) che sto cercando di reimpostare a livello di codice su 0. Quando eseguo il comando di seguito, non reimposta l'indice di segmento a 0 come previsto. Invece si evidenzia segmento indicizzato 1.Cambia UISegmentedControl l'indice o il valore selezionato a livello di codice
[seg setSelectedSegmentIndex:0];
Stranamente quando accedo segmento selezionato, restituisce 0
.
NSLog(@"seg setSelectedSegmentIndex %d", seg.selectedSegmentIndex);
Inoltre stranamente, dopo l'esecuzione setSelectedSegmentIndex:0
non posso riselezionare segmento 0 manualmente tocco, sembra essere bloccata per segmento 1, fino a quando si tocca 1 in cui funziona come normale.
Ecco la configurazione per il pulsante:
itemArray = [NSMutableArray arrayWithObjects: @"Zero", @"One", nil];
seg = [[UISegmentedControl alloc] initWithItems:itemArray];
[seg setFrame:segRect];
seg.segmentedControlStyle = UISegmentedControlStyleBar;
seg.momentary = NO;
[seg addTarget:self action:@selector(someAction:) forControlEvents: UIControlEventValueChanged];
[mainView addSubview:seg];
NOTA: per ribadire quello che stavo cercando di realizzare con questa domanda: Voglio impostare indice selezionato di un UISegmentedControl tramite una variabile in modo dinamico, otteniate feedback visivo appropriato, e controllare l'indice selezionato in un metodo, per far accadere qualcosa a seconda dell'indice selezionato. Vedi la mia risposta qui sotto per una soluzione.
sono entrambi i segmenti abilitati prima di provare a selezionare? (usando isEnabledForSegmentAtIndex) –
@calvinBhai Penso di sì, il default non dovrebbe essere abilitato? – Mrwolfy
Ho lo stesso problema, il segmento 0 non può essere riselezionato una volta che uno degli altri è stato. Sto andando a rilasciare con una soluzione alternativa di avere un vuoto seg 0 per ora. Il mio segmento si trova all'interno di un UIControl all'interno di un UIScrollView. Ho avuto il problema in precedenza quando iOS 5 ha funzionato bene, ma lo stesso binario su iOS6 ha mostrato questo problema. –