ios - how - ¿Cómo cambio UIsegmentedControll mediante programación?
swift 4 segmented control example (5)
¿Cómo cambio UISegmentedControll
programación?
@jmstone response, true, esta acción no invocará el evento valueChanged para este control.
Una forma de superar esto es simplemente llamar a la función usted mismo:
segmentedControl.selectedSegmentIndex = 3;
[self valueChangedMethod:segmentedControl];
Esto llamará:
- (void)valueChangedMethod:(UISegmentedControl *)segmentedControl
{
//continue your code here...
}
Alternativamente, después de que haya cambiado la llamada selectadaSegmentIndex ''sendActionsForControlEvents:'' por ejemplo
segmentedControl.selectedSegmentIndex = 0
[segmentedControl sendActionsForControlEvents:UIControlEventValueChanged];
En Swift:
segmentedControl.selectedSegmentIndex = 1
Swift 2:
segmentedControl.sendActionsForControlEvents(UIControlEvents.ValueChanged)
Swift 3:
segmentedControl.sendActions(for: UIControlEvents.valueChanged)
He tenido un problema similar donde el control segmentado no estaba cambiando. Estaba llamando "selectedSegmentIndex", etc. demasiado pronto. Una vez que lo llamé después de que se llamara "viewDidLoad", todo estaba bien de nuevo.
La propiedad selectedSegmentIndex identifica el segmento seleccionado de un UISegmentedControl. Establezca esta propiedad en cualquier índice de segmento válido o UISegmentedControlNoSegment (-1) para desactivar la selección actual.
// select the first segment
segmented.selectedSegmentIndex = 0;
// turn off the current selection
segmented.selectedSegmentIndex = UISegmentedControlNoSegment;