¿Cómo comprobar si el UISegmentedControl está seleccionado o no por el usuario?

Recibí una aplicación en la que UISegmentedControl 5 UISegmentedControl dinámicamente en la vista. Y tiene un button Listo al final. Mi condición es que para avanzar al siguiente paso (cuando se presiona el button hecho), todos los UISegmentControl s "deben ser seleccionados por el usuario".

La selección pnetworkingeterminada en segmentcontrol no es ninguna. ¿Cómo verificar si todos los UISegmentedControls en mi vista son seleccionados por el usuario antes de que se ejecute la acción en el button hecho?

Desde el documento de Apple, esto debería responder a su pregunta:

 @property(nonatomic) NSInteger selectedSegmentIndex 

Discusión El valor pnetworkingeterminado es UISegmentedControlNoSegment (ningún segmento seleccionado) hasta que el usuario toque un segmento.

Espero que pueda usar eso para comprobar si el valor está seleccionado por el usuario o no, para evitar ir a la página siguiente.

 NSLog(@"%i", self.segment.selectedSegmentIndex); 

esto resulta -1 si no se selecciona ningún segmento.

agregue el destino y la acción a su segmentControls para UIControlEventValueChanged. Desde el selector que dio en acción, verifique qué segmentControl se cambió y configure su indicador correspondiente (por ejemplo: matriz de cadena que son @ "0" para no seleccionados y @ "1" una vez seleccionados).

En cualquier momento, verifique qué banderas no están establecidas, los segmentos de control correspondientes nunca fueron seleccionados.

Así es como se crea un UISegmentedControl

 NSArray *itemArray = [NSArray arrayWithObjects: @"Title1", @"Title2", @"Title3", @"Title4",nil]; segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray]; segmentedControl.frame = CGRectMake(0, 0, 310, 35); segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; segmentedControl.selectedSegmentIndex = 0; [segmentedControl addTarget:self action:@selector(pickOne:) forControlEvents:UIControlEventValueChanged]; segmentedControl.tintColor=[UIColor grayColor]; 

Luego para encontrar qué segmento fue seleccionado,

 NSString *category =[segmentedControl titleForSegmentAtIndex: [segmentedControl selectedSegmentIndex]]; if(category==@"Title1"){ //Do something here.. } 

Espero que esto ayude … Happy Coding