Question

On pourrait penser que je peux facilement trouver une réponse à cette question, et peut-être je l'ai raté, mais voilà.

Mon application contient quelques vues dont la vue principale affiche un tas d'informations qu'il recueille progressivement d'un utilisateur, le micro et l'appareil photo et à travers les autres vues. Il est tout censé se terminer par un grand climax « bouton d'envoi. » À ce moment-là les données stockées en toute sécurité se (actuellement dans une base de données sql ... mais c'est une autre histoire).

Une fois cela fait, je veux tout le processus de démarrage sur lequel des moyens réinitialisant la vue à un état vierge. Dans android, je peux lancer une nouvelle intention et détruire l'ancien.

Je crois comprendre que je suis censé commencer par le délégué de l'application (voir code ci-dessous). Maintenant, la question est, où dois-je aller d'ici?

- (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;
}
Était-ce utile?

La solution 2

Ainsi, après une juste part de creuser autour, et de tâtonnements. J'ai trouvé quelque chose qui fonctionne comme je le veux.

I a créé une fonction particulière dans le délégué d'application qui exécute ce qui suit:

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

Ensuite, du principal contrôleur de vue, j'appelle cette fonction

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

Simple comme bonjour ...

Autres conseils

Je voudrais créer l'RootViewController comme ma position de départ. Lorsque les charges RootViewController je voudrais initialiser et ajouter mon premier processus d'entrée de données. De cette façon, quand je soumets frappé je qualifierais popToRootViewController, et quand les charges rootViewContoller il initialiser et charger le premier processus d'entrée de données à nouveau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top