Pregunta

Uno pensaría que puedo encontrar fácilmente una respuesta a esta pregunta, y tal vez la perdí, pero aquí va.

Mi aplicación contiene algunas vistas de las cuales la vista principal muestra un montón de información que recopila progresivamente de un usuario, el micrófono y la cámara a través de las otras vistas. Se supone que todo terminará con un gran "botón de envío" climático. En ese punto, los datos se almacenan de forma segura (actualmente en una base de datos SQL ... pero esa es otra historia).

Una vez hecho esto, quiero que todo el proceso comience, lo que significa reinicializar la visión a un estado de Virgin. En Android, puedo lanzar una nueva intención y destruir la antigua.

Supongo que se supone que debo comenzar con el delegado de la aplicación (vea el código a continuación). Ahora la pregunta es, ¿a dónde voy desde aquí?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
    self.window.rootViewController = self.mainViewController;
    self.mainViewController.managedObjectContext = self.managedObjectContext;

    [self.window makeKeyAndVisible];
    return YES;
}
¿Fue útil?

Solución 2

Entonces, después de una buena cantidad de cavar, y prueba y error. Encontré algo que funciona de la manera que quiero.

Creé una función especial en la aplicación delegado que ejecuta lo siguiente:

- (void) newScreen
{
    self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
    self.window.rootViewController = self.mainViewController;
    self.mainViewController.managedObjectContext = self.managedObjectContext;
}

Luego, desde el controlador de vista principal, llamo a esa función

[(AppDelegate *)[[UIApplication sharedApplication] delegate] newScreen];

Muy fácil...

Otros consejos

Crearía el RootViewController como mi posición inicial. Cuando se carga RootViewController, inicializaría y agregaría mi primer proceso de entrada de datos. De esta manera, cuando presioné, llame a PopTorootViewController, y cuando el RootViewContoller cargue, inicializaría y cargaría el primer proceso de entrada de datos nuevamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top