Este parece ser el patten utilizado en todas las aplicaciones de manzanas; La creación de un nuevo registro se realiza a través de una Vista modal que debe guardarse o cancelarse para continuar, y la edición de un registro se realiza a través de una vista insertada en la pila de navegación.¿Debo usar el mismo detalle ViewController para trabajar de forma modal y cuando me presionen?
No parece correcto duplicar mi ViewController para 'agregar' y 'editar', pero hay varias diferencias en cómo funcionan los ViewControllers forzados y modales que complican las cosas.
¿Cómo debo estar haciendo esto para que pueda cubrir ambas bases?
-
Las diferencias incluyen.
Cuando se lo coloca en la pila, el navBar aparece en la parte superior de la Vista y se puede configurar para que contenga los botones cancelar/guardar. Cuando se presenta de forma modal, este no es el caso, por lo tanto, para duplicar la interfaz, se debe crear una barra de herramientas por separado y, en su lugar, cerrar/guardar botones.
al despedir una vista empujado enviamos un mensaje al controlador de navegación [self.navigationController popViewControllerAnimated:YES];
, al despedir a una vista modal enviamos un mensaje a la libre [self dismissModalViewControllerAnimated:YES];
¿Cómo exactamente se "complica las cosas" entre empujar y presentando modal? –
Pregunta editada con más detalles – trapper
Lo abordaría definiendo un protocolo (trapperDismisser) que permitiera al controlador de vista indicar que estaba listo para ser descartado. Luego, cumpla trapperViewDismisser y configure delegate en self. Esto mueve las diferencias a la clase que muestra el VC (que ya conoce las diferencias de todos modos). – Thompsonian