Looking for ios Answers? Try Ask4KnowledgeBase
Looking for ios Keywords? Try Ask4Keywords

iOSSwift: cambiando el control rootViewController en AppDelegate para presentar el flujo principal o de inicio de sesión / incorporación


Introducción

A menudo es útil presentar una experiencia de primera ejecución a los nuevos usuarios de su aplicación. Esto podría deberse a varios motivos, como pedirles que inicien sesión (si es necesario para su situación), explicar cómo usar la aplicación o simplemente informarles sobre nuevas funciones en una actualización (como lo hacen Notas, Fotos y Música). iOS11).

Observaciones

En primer lugar, cuando se trata de flujos múltiples, aquí es donde los guiones gráficos se pueden usar de manera efectiva. Por defecto, su aplicación utiliza Main.storyboard para su flujo primario. Su flujo de incorporación / alternativa puede estar contenido en un guión gráfico secundario, por ejemplo. Onboarding.storyboard

Esto tiene una serie de ventajas:

  • en un equipo de desarrolladores, el trabajo en cada flujo de usuario se puede separar
  • control de fuente más claro (git)
  • separación de intereses

Cuando se inicie su aplicación, puede determinar qué flujo debe presentarse. La lógica para esto puede estar contenida en su AppDelegate:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    let isFirstRun = true // logic to determine goes here
    if isFirstRun {
        showOnboarding()
    }
    return true
}

Para mostrar el flujo de Onboarding, vale la pena considerar cómo le gustaría manejar la experiencia de descartarlo una vez que la persona que lo utiliza ha completado el viaje, y que es semánticamente correcto para lo que está tratando de crear.

Enfoques:

Los dos enfoques principales son:

  1. Intercambia el controlador de vista raíz de la ventana principal de la aplicación
  2. Presente el flujo de Onboarding como un viaje modal, superponiendo el flujo principal.

La implementación de esto debe estar contenida en una extensión de AppDelegate.

Swift: cambiando el control rootViewController en AppDelegate para presentar el flujo principal o de inicio de sesión / incorporación Ejemplos relacionados