7
votes

iOS: est-il possible d'ouvrir la page ViewController après l'application de Crashing and Re-lancement?

Comment réaliser ces trucs ci-dessous? S'il vous plaît donnez-moi des conseils pour cela. Je décris mon problème ci-dessous.

Lorsque je appuyez sur le bouton Accueil et supprimez l'application de la bac et pendant que j'ouvre une application, je reçois l'écran de connexion. Je sais comment utiliser nsuserdefault bien.

Mais mon problème est que lorsque je navigue 3ème ou 4ème ViewController et I Appuyez sur le bouton Accueil et supprimez l'application de la bac, puis chaque fois que j'ouvre une application que je souhaite ouvrir avec la dernière version de la vue ViewController .

Aussi identique lorsque mon application s'écrase et je l'ouvre à nouveau, je souhaite ouvrir une application avec le dernier (code> ViewController Etat.

Alors je veux juste savoir que c'est que possible ou pas? Si oui, alors s'il vous plaît, veuillez me guider comment réaliser ce matériel.

merci


0 commentaires

3 Réponses :


2
votes

Je comprends que vous allez bien avec la partie de code, donc je vais juste donner ma suggestion

sur ViewDiDload de chaque contrôleur d'affichage Définissez une valeur NSUserDefault du plus haut objet sur la matrice de navigation.

Si leurs ne sont pas trop de branches, vous pouvez gérer facilement le contrôleur de la vue Root View


2 commentaires

Merci de répondre à votre idée, c'est bien mais je m'inquiétais de la manière de gérer cette application toute mon application avec Navigaiton + Tabbar et deux types d'administrateur de connexion et d'utilisation. Alors, comment gérer cela plus logiscreen ... et sa session associée et ses utilisateurs ..?


Woohh je pense que vous devrez faire une classe (sérialisée), puis en informatique, enregistrez toutes les informations nécessaires telles que le type de compte, l'index des onglets, la visualisation. Enregistrez-le en défaut de l'utilisateur comme nsdata



3
votes

oui strong>, les deux cas sont possibles.

sur Crash STRUT>, vous pouvez utiliser UNCOREDEXCEPTHANDLER pour effectuer un code. Dans votre application, déléguée, enregistrez votre gestionnaire comme ceci: p> xxx pré>

et ajoutez la méthode de votre gestionnaire au même fichier .m p> xxx pré> tandis que l'application fonctionne forte>, pour garder une trace du dernier contrôleur de barre d'onglets sélectionné, utilisez uitabbarcontrollerdelegate code> et enregistrez l'index de la barre d'onglet nouvellement sélectionné sur nsuserdefault code>. Exemple court: P>

self.tabBarController.selectedIndex = lastSelectedIndexFromDefaults;


6 commentaires

Mais qu'en est-il de ce que je suis dans Navigate TabarreviewController -> autreviewController ..?


THX Pour info, mais votre idée est bonne mais je m'inquiétais de la façon de gérer cette application tout mon application avec NAVIGAION + TABBAR et également deux types d'administrateur de connexion et d'utilisation ..? Alors, comment gérer cela plus logiscreen ... et sa session associée et ses utilisateurs ..?


Désolé, mais je suis incapable de vous aider plus ou plus en détail: - / solution possible dépend fortement de votre architecture d'applications, j'espère que vous comprenez que :-)


Yup que je sais que c'est pourquoi je pose une question à Donc :) De toute façon Thx pour vos efforts et merci de l'aide ..


Cette réponse a l'air raisonnable. Regardez quelle est l'application - elles ont à la fois ceci pour la barre d'onglets et la navigation. Barre d'onglets: les 5 VC possibles sauveront la dernière fois indiquée. Navigation: Si vous quittez l'application au milieu d'écrire un texte à un contact, vous serez relancé dans la même position (ceci est à l'intérieur d'un contrôleur de navigation).


Toutefois, comme indiqué ci-dessus, si vous devez passer des arguments à ces nouveaux VC dans le contrôleur de navigation, par exemple dans PREPARYFORSEGUEGUE:, vous ne pouvez presque jamais le faire (à moins que vous ne disposiez de manière à identifier tous les deux que les arguments ont besoin de stocker et de réellement Stockez-les - en d'autres termes, il n'y a pas de solution générique pour le contrôleur de navigation)



2
votes

Ce n'est pas la bonne réponse, mais vous pouvez l'utiliser pour la navigation de vue après le lancement.

dans le fichier Appdelegate Utilisez ci-dessous les codes suivants: --- p>

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {

        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(openLastVC)
                                                     name:@"appDidBecomeActive"
                                                   object:nil];

        // Custom initialization
    }
    return self;
}

-(void)openLastVC
{
    NSLog(@"val ==%@",[[NSUserDefaults standardUserDefaults] valueForKey:@"lastVC"]);

    if ([[[NSUserDefaults standardUserDefaults] valueForKey:@"lastVC"] isEqualToString:@"GhachakViewController"]) {
        GhachakViewController *gvc=[[GhachakViewController alloc] initWithNibName:@"GhachakViewController" bundle:nil];
        [self.navigationController pushViewController:gvc animated:NO];
    }
}


0 commentaires