2009-03-19 14 views
5

Tengo una ventana emergente de acción en mi aplicación iphone. Me gustaría llenarlo con cadenas de una matriz en lugar de valores predeterminados.Completar una hoja de acción con una matriz

¡No puedo encontrar nada en línea para hacer esto! ¿Tal vez la hoja de acciones no es lo correcto para usar?

En este momento esto es lo que estoy usando para construirlo:

roomspopup = [ [ UIActionSheet alloc ] 
        initWithTitle: alertname 
        delegate: self 
        cancelButtonTitle: @"Cancel" 
        destructiveButtonTitle: nil 
        otherButtonTitles: @"Kitchen", "Dining Room", nil ]; 

Pero, en lugar de "cocina" y "Comedor" Me gustaría que se llene desde una matriz. El tamaño de la matriz (es decir, el número de salas) no es un número fijo.

Respuesta

7

No puede hacerlo en una línea. Tendrá que llamar al initWithTitle con un conjunto vacío de botones, y luego agregar sus otros botones con un bucle usando addButtonWithTitle:.

14

@JimTrell

La manera de arreglar eso sería inicializar el UIActionSheet sin el botón de cancelación y añadir este botón cancelar después de agregar los otros botones.

Primera init la hoja con un montón de nula de:

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Choose" 
         delegate:self 
         cancelButtonTitle:nil 
         destructiveButtonTitle:nil 
         otherButtonTitles:nil]; 

Luego de bucle a través de su matriz con addButtonWithTitle: y finalmente agregar el botón de cancelación y establecer su índice:

[actionSheet addButtonWithTitle:@"Cancel"]; 
[actionSheet setCancelButtonIndex:[yourArray count]]; 
+1

Más en general: '[actionSheet setCancelButtonInd ej .: [actionSheet numberOfButtons] - 1]; ' – Nestor

0

me puede configurar el botón cancelar en la parte inferior utilizando este código:

anActionSheet = [[UIActionSheet alloc] initWithTitle:@"Change A/C" delegate:self 
    cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil, nil]; 

for (int i = 0; i < [arraylist count]; i++)  
    [anActionSheet addButtonWithTitle:[arraylist objectAtIndex:i]]; 

anActionSheet.cancelButtonIndex = [arraylist count];  
[anActionSheet addButtonWithTitle:@"Cancel"]; 
+0

anActionSheet.cancelButtonIndex = [número de matrices]; es el punto principal. Tendrá que declararlo después del bucle, de modo que el botón cancelar esté configurado después de todos los demás botones. –

Cuestiones relacionadas