Tengo una serie de cadenas que quiero usar para los títulos de los botones en una UIActionSheet. Desafortunadamente, el argumento otherButtonTitles: en la invocación del método toma una lista de cadenas de longitud variable, no una matriz.
Entonces, ¿cómo puedo pasar estos títulos a UIActionSheet? La solución alternativa que he visto sugerida es pasar nil a otherButtonTitles :, luego especifique los títulos de los botones individualmente usando addButtonWithTitle :. Pero esto tiene el problema de mover el botón "Cancelar" a la primera posición en UIActionSheet en lugar de la última; Quiero que sea el último.
¿Hay alguna manera de 1) pasar una matriz en lugar de una lista variable de cadenas, o alternativamente 2) mover el botón cancelar a la parte inferior de UIActionSheet?
Gracias.
fuente
Respuestas:
Conseguí que esto funcionara (solo necesitas hacerlo, estar bien con un botón normal y solo agregarlo después de:
fuente
cancelButton
no es rojo. EldestructiveButton
es rojo.[UIActionSheet addButtonWithTitle]
parece no configurarse correctamentefirstOtherButtonIndex
(que debería usarse en el delegado enactionSheet:clickedButtonAtIndex:
lugar de codificar 0 o cosas similares). Ponerse desagradable con la conversión de unNSArray
ava_list
tampoco parece una gran solución. :-( Esta API es muy fea.Una pequeña nota: [actionSheet addButtonWithTitle:] devuelve el índice de ese botón, por lo que para estar seguro y "limpio" puede hacer esto:
fuente
destructiveButtonIndex
para elloTomando las respuestas de Jaba y Nick y extendiéndolas un poco más. Para incorporar un botón de destrucción en esta solución:
fuente
Existe la versión rápida para la respuesta:
Para obtener el valor seleccionado, agregue delegado a su ViewController:
E implementar el método "clickedButtonAtIndex"
fuente