2010-07-08 11 views
7

Probablemente sea una pregunta muy simple, pero parece que no puedo encontrar nada en las API ni en ningún motor de búsqueda.Cont. UISegmentado configurado como Controlador momentáneo

Tengo un control segmentado que configuré de manera momentánea, ya que el usuario seleccionará un par de marcas de un automóvil que desea buscar. El problema con el que me estoy encontrando es que parece que no puedo entender cómo reconocer qué segmento fue seleccionado. En modo regular, es un índice de SelectedSegment = simple, pero con mi entendimiento momentáneo de que el segmento seleccionado es siempre -1 ya que ninguno está "seleccionado"

Tengo un controlador para ValueChanged pero no puedo entender lo que hago ' m verificar o lo que debería enviar para determinar qué segmento se seleccionó. Cualquier ayuda sería muy apreciada. Estoy usando monotouch pero Obj-C estaría bien también.

Gracias!

Respuesta

10

En su controlador, usted debe comprobar el selectedSegmentIndex para determinar qué segmento seleccionado:

- (void)valueChanged:(UISegmentedControl *) control { 
    switch([control selectedSegmentIndex]) { 
     case 0: 
     //... 
     break; 
     case 1: 
     //... 
     break; 
    } 
} 
+2

Esto es correcto. El UISegmentedControl solo rastrea el * último * elemento que se seleccionó, no * todos * los elementos seleccionados actualmente. Deberá mantener la lista actualmente seleccionada en su propio objeto. –

+0

Impresionante, gracias por la ayuda! – Adam

+3

Guau, eso funciona. La [documentación de Apple] (http://developer.apple.com/library/ios/documentation/uikit/reference/UISegmentedControl_Class/Reference/UISegmentedControl.html#//apple_ref/occ/instp/UISegmentedControl/selectedSegmentIndex) parece indicarlo no lo haría "UISegmentedControl ignora esta propiedad cuando el control está en modo momentáneo". Pero selectedSegmentIndex produce un buen valor, por lo que funciona para mí. –

Cuestiones relacionadas