Domanda

Si potrebbe pensare che la ricerca di una risposta a questa domanda, e forse ho perso, ma qui va.

La mia app contiene alcune viste di cui la vista principale visualizza un mazzo di informazioni che raccoglie progressivamente da un utente, il microfono e la telecamera e attraverso gli altri punti di vista. E 'tutto dovrebbe finire con una grande climatico "pulsante di invio." A quel punto i dati vengono memorizzati in modo sicuro (attualmente in un database SQL ... ma questa è un'altra storia).

Una volta fatto ciò, voglio che l'intero processo di ricominciare quali mezzi reinitializing la vista ad uno stato vergine. In Android, posso buttare un nuovo intento e distruggere quello vecchio.

I raccogliere dovrei iniziare con il delegato app (vedi codice qui sotto). Ora la domanda è: dove posso andare da qui?

- (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;
}
È stato utile?

Soluzione 2

Così, dopo una congrua parte di scavare in giro, e tentativi ed errori. Ho trovato qualcosa che funziona il modo in cui voglio che.

ho creato una funzione speciale nel delegato applicazione che esegue il seguente:

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

Poi dal controllore vista principale chiamo quella funzione

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

Facile come bere un bicchiere ...

Altri suggerimenti

I creerebbe il RootViewController come la mia posizione di partenza. Quando i carichi RootViewController vorrei inizializzare e aggiungere il mio primo processo di immissione dei dati. In questo modo, quando ho colpito presento io chiamerei popToRootViewController, e quando i carichi rootViewContoller sarebbe inizializzare e caricare di nuovo il primo processo di immissione dei dati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top