18

La documentación de Apple para UIActionSheet me causa confusión. En primer lugar, en las pautas de la interfaz humana del iPad, dice:Uso de UIActionSheet en el iPad

Para obtener más información sobre cómo usar una hoja de acción en el código, consulte "Uso de Popovers para mostrar contenido" en la Guía de programación del iPad.

Pero luego, en la sección "Uso de Popovers para mostrar contenido", ¡no menciona en absoluto las Hojas de acción! ¿Me estoy perdiendo de algo?

http://developer.apple.com/library/ios/#documentation/General/Conceptual/iPadHIG/UIElements/UIElements.html#//apple_ref/doc/uid/TP40009446-CH6-SW9

Mi pregunta principal es la siguiente: en el IPAD, ¿cuál es la diferencia entre un UIPopoverController y una UIActionSheet? Si una UIActionSheet se presenta automáticamente dentro de un UIPopoverController, ¿hay alguna razón para usar UIActionSheet? Veo cómo su delegado y la creación automática de botones producen menos líneas de código, pero desde un punto de vista de usabilidad, ¿hay alguna diferencia?

Además, la visualización de mi actionSheet con animación no funciona en absoluto. Se ve y actúa exactamente como una hoja de acción presentada sin animación (que es exactamente lo mismo que si solo estuviera usando un UIPopoverController y ninguna actionSheet en absoluto). Aquí está mi código:

UIActionSheet *action = [[UIActionSheet alloc] initWithTitle:@"An unsaved property already exists. You must assign a name to this property before creating a new property. Would you like to:" 
    delegate:self 
    cancelButtonTitle:nil 
    destructiveButtonTitle:@"Overwrite" 
    otherButtonTitles:@"Open unsaved property", nil]; 

[action showFromRect:CGRectMake(0, 0, 200, 200) inView:self.mainSplitViewController.view animated:NO]; 

¿Cómo puedo obtener una actionSheet que se parece a la actionSheet animada muestra en la documentación de Apple (desde la aplicación de mapas, donde se agrega una ubicación a un contacto)?

Acabo de terminar utilizando una alerta para esto en lugar de un popover o una hoja de acción, pero aún sería útil para entender esto.

Gracias!

Respuesta

22

En primer lugar, UIActionSheet existía antes de UIPopoverController y UIPopoverController no está disponible en el iPhone, por lo que es útil para la retrocompatibilidad y las aplicaciones universales.

Además, un UIActionSheet no necesariamente se presentó en un popover, específicamente, si lo muestras a partir de una UIBarButtonItem o UIToolbar que ya está dentro de un popover. Luego se presenta de manera similar a la del iPhone (deslizándose desde la parte inferior del controlador de vista). Según HIG, no debes presentar múltiples popovers al mismo tiempo (una vez tuve una aplicación rechazada), así que en los casos en que un controlador de vista puede estar dentro de un popover (como en una aplicación de vista dividida estándar), puedes desea usar hojas de acción, si es posible. Por supuesto, hay muchos casos en los que no puede reemplazar un popover con una hoja de acción, porque una hoja de acción solo muestra una lista de botones y un título, mientras que un popover puede mostrar cualquier controlador de vista.

Creo que el parámetro animated solo tiene un efecto cuando se presenta una hoja de acción en el modo "clásico" (como en el iPhone).

+2

+1 por su respuesta. ¡Muy útil! Usted dijo eso * Por supuesto, hay muchos casos en los que no puede reemplazar un popover con una hoja de acción, porque una hoja de acción solo muestra una lista de botones y un título, mientras que un popover puede mostrar cualquier controlador de vista. *. Por lo tanto, no es posible presentar un selector de fecha. ¿Estoy equivocado? Gracias. –

Cuestiones relacionadas