UIActionSheet en acción
08 March 2009

Hoy vamos a aprender como implementar el control UIActionSheet, el cual muestra un elegante efecto al aparecer, permitiendo incluso aplicar cierta opacidad a la ventana que queda detrás.
La forma de mostrar dicho control es:
[cpp]
UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"My ActionSheet Title" delegate:self cancelButtonTitle:@"Cancelar" destructiveButtonTitle:@"Amonos" otherButtonTitles:nil];
actionSheet.actionSheetStyle = UIBarStyleBlackTranslucent;
actionSheet.delegate = self;
[actionSheet showInView:self.view];
[actionSheet release];
[/cpp]
PUNTO POR PUNTO
1. La forma de crear dicho control, permite entre un botón para cancelar (selfcancelButtonTitle), otro para aceptar (destructiveButtonTitle) y una lista de controles más (otherButtonTitles).
Si necesitamos más de dos botones, tendremos que recurrir a otherButtonTitles de la siguiente manera:
[cpp]
UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"My ActionSheet Title" delegate:self cancelButtonTitle:@"Cancelar" destructiveButtonTitle:nil otherButtonTitles:@"botón 1", @"botón 2", @"botón 3", @"botón 4", @"botón 5", @"botón 6", nil];
[/cpp]
2. Mediante actionSheet.actionSheetStyle = UIBarStyleBlackTranslucent; aplicamos el estilo y/o opacidad a la ventana que queda detrás.
3. Para poder controlar y gestionar el botón que el usuario pulse, debemos delegar los eventos de dicho control en nuestra clase mediante actionSheet.delegate = self; Dichos eventos y botones pulsados serán recogidos mediante el siguiente método:
[cpp]
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex;
[/cpp]
Recordad que para ello debemos de definir en nuestra clase UIActionSheetDelegate:
[cpp]
@interface MiClaseController : UIViewController
[/cpp]
Eso es todo, espero que lo aprovechéis.

Comentarios recientes
Hola amigo Toda información que se preste al usuario es poca, y aunque es cierto que ya está declarado en el Init, ponerlo después seguro que aclara a más de uno. No pretendemos presentar ejemplos avanzados ni somos unos puristas, tan solo pretendemos que el usuario y visitante de este blog aprenda de una forma rápida y clara. Aún así, gracias por tu comentario.
La linea 5 del primer ejemplo es superflua. Ya has declarado el Action Sheet como delegado en el método init de la linea 1.
Deja un comentario