2009-06-28 14 views
7

En Xcode, la plantilla Aplicación utilidad hace un proyecto con:¿Cómo elegir qué código poner en una Vista frente a un ViewController?

MainView, MainViewController

y

FlipsideView, FlipsideViewController

En mi aplicación, las dos vistas corresponden a la interfaz de usuario principal y 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 ejemplo de aplicaciones similares, veo que algunos ponen la mayor parte del código activo en una Vista, dejando al ViewController poco más que un talón, pero otros lo hacen al revés.

¿Hay una regla de oro para ir por la hora de decidir dónde poner la mayor parte de mi funcionalidad?

Respuesta

2

Una forma de decidir: si su aplicación recibe una advertencia de poca memoria, el comportamiento por defecto es que cualquier vista que no es visible en ese momento puede ser destruido. 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.

así que depende de lo que la mayor parte de su funcionalidad está haciendo: si se trata de información de mantenimiento que el usuario creado, tiene que estar en el controlador de vista.

2

Si quieres ser un purista MVC, cosas como la vista de conmutación y control de eventos deben ir en el controlador, y el código de creación de vista de la vista.

Pero está bien para poner un poco de la lógica de la aplicación en la vista, si eres constante en toda la aplicación.

+0

Acepto que generalmente solo el código de creación de vistas pertenece a la clase de vista. Y a menudo, no es necesario ningún código de creación de vistas, por lo que puede deshacerse por completo de la clase de vista. –

1

Ya hay varias preguntas en StackOverflow que cubren modelo-vista-controlador. Por ejemplo, vea What goes into the "Controller" in "MVC"?.

En su situación específica, las propias preferencias son un tipo de modelo que hace 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.

Cuestiones relacionadas