iphone - español - ¿Cómo elegir qué código poner en una Vista frente a un ViewController?
view controller que es (3)
Si quieres ser un purista de MVC, cosas como el cambio de vista y el manejo de eventos deberían ir en el controlador y el código de creación de vistas en la vista.
Pero está bien poner algo de lógica de la aplicación en la vista, si eres coherente en toda la aplicación.
En Xcode, la plantilla de la aplicación de utilidad realiza un proyecto con:
MainView, MainViewController
y
FlipsideView, FlipsideViewController
En mi aplicación, las dos vistas corresponden a la interfaz de usuario principal y a una pantalla de preferencias. Obviamente, quiero que las preferencias se reflejen en la interfaz de usuario principal y persistan en el disco para recordar la configuración. Sé cómo hacer esa parte.
El problema es que, mientras miro el código de muestra de aplicaciones similares, veo que algunos ponen la mayor parte del código activo en una Vista, dejando al Controlador de Vista un poco más que un talón, aunque algunos otros lo hacen al revés.
¿Existe una regla de oro para decidir dónde colocar la mayor parte de mi funcionalidad?
Una forma de decidir: si su aplicación recibe una advertencia de memoria baja, el comportamiento predeterminado es que cualquier vista que no esté visible se puede destruir. Esto significa que si tiene información del estado que no puede volver a crear fácilmente, será mejor que no la mantenga a su vista.
Por lo tanto, depende de cuál sea el grueso de su funcionalidad: si está manteniendo la información que el usuario creó, debe estar en el controlador de vista.
Ya hay varias preguntas en que cubren model-view-controller. Por ejemplo, vea ¿Qué entra en el "Controlador" en "MVC"? .
En su escenario específico, las preferencias en sí mismas son un tipo de modelo que realiza un seguimiento de las preferencias del usuario. Guardar y cargar esas preferencias es deber del controlador. Mostrar esas preferencias y dar al usuario una manera de cambiarlas es el deber de la vista. Y finalmente, cuando un usuario cambia esas preferencias, la vista informa esto al controlador, que realiza los cambios apropiados en el modelo.