En este tutorial de iOS SDK para principiantes, veremos cómo implementar UIActionSheet
y UIActionSheetDelegate
. Esta clase le permitirá solicitar fácilmente al usuario una entrada al mostrar una lista de opciones de menú.
Inicia Xcode y haz click Archivo> Nuevo> Proyecto. Haga clic en "Aplicación" debajo del panel de iOS a la izquierda y luego haga clic en el icono "Aplicación de vista única". Haga clic en Siguiente".
En el campo "Nombre del producto", escriba "ActionSheetDemo" e ingrese un nombre para su Identificador de compañía, como "com.mobiletuts". Elija "iPhone" en el menú "Familia de dispositivos". Desmarque "Usar guiones gráficos" e "Incluir pruebas unitarias", y marque "Usar conteo automático de referencias". Haga clic en "Siguiente", elija una ubicación para guardar su proyecto y haga clic en "Crear".
Primero declaramos y definimos un método que mostrará la hoja de acción. Haga clic en el archivo "ViewController.m" y agregue la siguiente declaración de método y definición:
@interface ViewController () - (void) showActionSheet: (id) sender; // Método de declaración para mostrar la hoja de acción @end @implementation ViewController… - (void) showActionSheet: (id) sender …
Busca el viewDidLoad:
método en el mismo archivo, y agregue el siguiente código para crear un botón mediante programación:
Botón UIButton * = [botón UIButtonWithType: UIButtonTypeRoundedRect]; button.frame = CGRectMake (20.0f, 186.0f, 280.0f, 88.0f); [button setTitle: @ "Show Action Sheet" forState: UIControlStateNormal]; [button setTitleColor: [UIColor blackColor] forState: UIControlStateNormal]; button.tintColor = [UIColor darkGrayColor]; [button addTarget: self action: @selector (showActionSheet :) forControlEvents: UIControlEventTouchUpInside]; [self.view addSubview: button];
Al hacer el método anterior., showActionSheet:
, El objetivo del botón, este método se llamará cuando se toque el botón. Ahora que tenemos un botón para mostrar la hoja de acción, pasemos a crear la lógica para abrir la hoja de acción cuando se presiona el botón.
Antes de que podamos llamar a cualquiera de los UIActionSheetDelegate
métodos, debemos conformarnos a la UIActionSheetDelegate
protocolo. Haga clic en el archivo "ViewController.h" y actualice la declaración de la interfaz al siguiente código.
@interface ViewController: UIViewController
De conformidad con la UIActionSheetDelegate
protocolo, el ViewController
la clase puede implementar y realizar las tareas necesarias cuando se llaman ciertos métodos de delegado.
Aún en el archivo "ViewController.m", agregue lo siguiente UIActionSheetDelegate
método.
- (void) actionSheet: (UIActionSheet *) actionSheet clickedButtonAtIndex: (NSInteger) buttonIndex
Hay muchos UIActionSheetDelegate
Sin embargo, solo usaremos uno: actionSheet: clickedButtonAtIndex:
. Este es uno de los métodos de delegado más comúnmente implementados, ya que se llama automáticamente cuando se toca uno de los botones en la hoja de acción.
Busca el showActionSheet:
Definición del método que agregamos anteriormente. Agregue el siguiente código dentro de las llaves para crear una hoja de acción con cinco botones.
NSString * actionSheetTitle = @ "Demo de hoja de acción"; // Título de la hoja de acción NSString * destructiveTitle = @ "Botón destructivo"; // Título de los botones de la hoja de acción NSString * other1 = @ "Otro botón 1"; NSString * other2 = @ "Otro botón 2"; NSString * other3 = @ "Otro botón 3"; NSString * cancelTitle = @ "Cancel Button"; UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle: actionSheetTitle delegate: self cancelButtonTitle: cancelTitle destructiveButtonTitle: destructiveTitle otherButtonTitles: other1, other2, other3, nil]; [actionSheet showInView: self.view];
Como su nombre lo indica, una hoja de acción presenta al usuario diferentes opciones y las acciones correspondientes que se pueden realizar. En la primera parte del método, creamos seis cadenas, una que representa el título de la hoja de acción y cinco que representan los títulos de los botones en la hoja de acción. La siguiente parte crea una hoja de acción con parámetros específicos. Estos parámetros incluyen un título para la hoja de acción, el objeto que será el delegado (en este caso yo
, la UIViewController
objeto), y los distintos botones que se mostrarán en la hoja de acción.
Hay tres tipos principales de botones utilizados en una hoja de acción. los cancelButtonTitle:
Cancela la hoja de acción por completo. los títuloButtonButton:
destruye o borra algo; este botón por defecto es rojo en la hoja de acción. los otros titulos de titulo:
puede ser cualquier cosa, ya menudo ofrece una opción como navegar a un nuevo viewController
. Para omitir uno de los botones, simplemente pase nulo como argumento para el título de ese botón. La última parte del método., showInView:
, Muestra la hoja de acción en la vista especificada..
Navegar de nuevo al método de delegado actionSheet: clickedButtonAtIndex:
. Agregue el siguiente código para determinar qué botón se presionó:
// Obtenga el nombre del botón actual presionado NSString * buttonTitle = [actionSheet buttonTitleAtIndex: buttonIndex]; if ([buttonTitle isEqualToString: @ "Destructive Button"]) NSLog (@ "Destructive presionado -> Delete Something"); si ([buttonTitle isEqualToString: @ "Otro botón 1"]) NSLog (@ "Otro 1 presionado"); si ([buttonTitle isEqualToString: @ "Otro botón 2"]) NSLog (@ "Otro 2 presionado"); si ([buttonTitle isEqualToString: @ "Otro botón 3"]) NSLog (@ "Otro 3 presionado"); si ([buttonTitle isEqualToString: @ "Cancel Button"]) NSLog (@ "Cancel presionado -> Cancel ActionSheet");
Cuando se presiona un botón, actionSheet: clickedButtonAtIndex:
se llama. Obtenemos el nombre del botón que se presiona y lo comparamos con los diferentes títulos de los botones de la hoja de acción para determinar qué botón se presionó. los NSLog
con cada instrucción if se registrará qué botón se presionó en la consola.
Hacer clic Producto> Ejecutar para construir y ejecutar el proyecto en el simulador. Haga clic en "Mostrar hoja de acción" para abrir la hoja de acción. Abre la consola haciendo clic Ver> Área de depuración> Activar consola en Xcode. Haga clic en uno de los botones de la hoja de acción para ver el registro correspondiente en la consola.
UIActionSheet
Se usa comúnmente para ofrecerle a un usuario muchas opciones. Experimentando con UIActionSheet
Le permitirá encontrar la configuración que funcione para las necesidades de su aplicación. ¿Preguntas o comentarios? Siéntase libre de dejarlos en la sección de comentarios o enviarlos directamente a través de Twitter @aaron_crabtree.