2011-04-25 23 views
6

Solo curiosidad por el uso del controlador de vista modal. ¿Cuándo y por qué deberíamos usarlos? Hay una directriz?¿por qué "presente controlador de vista modal"?

Encontré que el código del libro de datos del núcleo de muestra crea un controlador de navegación solo para presentar un controlador de vista modal. ¿Porqué es eso?

UINavigationController *navController = [[UINavigationController alloc] 
               initWithRootViewController:addViewController]; 

    [self.navigationController presentModalViewController:navController 
           animated:YES]; 

¿Hay alguna razón funcional para esto? ¿Funcionaría si simplemente presionáramos addViewController en self.navigationController?

Respuesta

13

Generalmente utiliza controles de vista modal para enfocar la atención del usuario en una Tarea. Cuando presionas, el usuario está en algún tipo de flujo de navegación, pero aún tiene la aplicación total a su alcance. Podrían decidir avanzar o retroceder, cambiar a una pestaña diferente en el medio, lo que sea. Cuando obtienen un controlador de vista modal, no pueden hacer nada de eso hasta que la tarea se complete o se cancele (la vista modal se descarta).

pls refieren why does this code use presentModalViewController? (not pushViewController) también

11

Sí, existen directrices. El iOS Human Interface Guidelines dicen:

utilizar una vista modal cuando se necesita para ofrecen la posibilidad de lograr un autónomo tarea relacionada con la función principal de la aplicación . Una vista modal es especialmente adecuada para una subtarea de varios pasos que requiere elementos de la IU que no pertenecen a la interfaz de usuario de la aplicación principal todos el tiempo.

También dicen que "Hacer Modal Tareas ocasional y simple":

Cuando sea posible, reducir al mínimo el número de veces la gente tiene que estar en un ambiente modal para realizar una tarea o suministro de una respuesta. Las aplicaciones iOS deben permitir a las personas interactuar con de forma no lineal. La modalidad impide esta libertad al interrumpir el flujo de trabajo de las personas y forzarlas a seleccionar una ruta particular.

modalidad es la más apropiada cuando:

Es fundamental para llamar la atención del usuario . Una tarea debe completarse (o abandonada explícitamente) para evitar dejando los datos del usuario en un estado ambiguo . La gente aprecia ser capaz de lograr una subtarea autónoma en una vista modal , porque el cambio de contexto es claro y temporal. Pero si la subtarea es demasiado compleja, las personas pueden perder de vista la tarea principal que suspendieron cuando ingresaron a la vista modal . Este riesgo aumenta cuando la vista modal es a pantalla completa y cuando incluye múltiples vistas subordinadas o estados .

Mantenga las tareas modales bastante cortas y estrechamente enfocadas.No desea que sus usuarios experimenten una vista modal como una mini aplicación dentro de su aplicación . Tenga especial cuidado con creando una tarea modal que implique una jerarquía de vistas , porque las personas pueden perderse y olvidarse de cómo volver a trazar sus pasos. Si una tarea modal debe contener subtareas en vistas separadas, asegúrese de dar a los usuarios una ruta única, clara a través de la jerarquía y evite las circularidades .

Proporcione siempre una forma obvia y segura para salir de una tarea modal. La gente debería siempre ser capaz de predecir el destino de su trabajo cuando descartan una vista modal .

Si la tarea requiere una jerarquía de vistas modales, asegúrese de que sus usuarios entienden lo que sucede si se toca un botón hecho en una vista que está por debajo del nivel superior . Examine la tarea para decidir si un botón Listo en una vista de nivel inferior debe finalizar solo la parte de la tarea o la tarea completa de esa vista . Cuando sea posible, evite agregar los botones Listo a las vistas subordinadas, porque de este potencial de confusión.

1

de la documentación de Apple

controladores de vista modal proporcionan formas interesantes para gestionar el flujo de su aplicación. Lo más común es que las aplicaciones usen controladores de vista modales como una interrupción temporal para obtener información clave del usuario. Sin embargo, también puede usar controladores de vista presentados de forma modal para implementar interfaces alternativas para su aplicación en momentos específicos.

Modal View Controllers

Cuestiones relacionadas