La mejor forma de crear un asistente con storyboard y datos básicos

¿Cuál es la mejor forma de crear un asistente usando un storyboard?

Por ejemplo, después de que un usuario inicia mi aplicación por primera vez, él / ella debe crear un perfil (nombre, apodo, género, intereses, etc.). Quiero hacer esto en varios pasos (asistente). Entonces, en el paso 1,2,3 un usuario puede completar su información personal. En el paso 4 habrá un button de 'terminar'. El momento en que el object de la persona se guarda en los datos centrales debe ser cuando el usuario selecciona este button. ¿Pero cuál es el mejor enfoque para hacer esto? NSManagedObject una class Person, que henetworkinga de NSManagedObject

En el guión gráfico, creé un controller de navigation que está conectado a un controller de visión (paso 1), este controller está conectado con otro controller de visión (paso 2), y así sucesivamente … ¿Es una buena idea crear diferentes classs de controller de vista donde todo es manejó o debo usar uno que debo reutilizar?

¿Alguna sugerencia de cómo crear un asistente en general? (en combinación con datos básicos)

Opción 1: implementar un controller de vista principal (el primero) y luego implementar vistas modales fuera de eso para get información adicional. Puede utilizar los botones siguientes en sus vistas modal, que pueden configurarse para descartar el controller de vista modal y volver a la vista principal o llamar a otro controller de vista modal. La información que recostack en las vistas modales se debe comunicar nuevamente a la vista principal con un protocolo de delegado. Solo después de tener toda la información, debe confiar la información a los datos básicos. Consulte esta respuesta para get información sobre cómo configurar un protocolo de delegado.

Opción 2: si está realizando la misma function de recostackción de información, puede seguir con un controller de vista que presenta diferentes vistas. Las vistas deben tener botones anteriores y siguientes. La última vista debería tener un button terminado. Cuando finalice el button debe confirmar el guardado a los datos principales. Puede distribuir todas las vistas una encima de la otra dentro de un containerView y cambiar entre ellas como describo en la respuesta a esta pregunta .