2012-08-29 3 views
0

Je suis nouveau dans le développement iOS mais j'ai une grande expérience de développement web, cette expérience est bonne parce que je connais déjà quelques langages de programmation mais c'est mauvais parce que j'ai mal à penser à iOS . J'ai commencé à regarder beaucoup de tutoriels et maintenant je comprends la syntaxe du langage Objective C et je peux écrire des tâches de base pour presque tout (services web, json, lire et écrire des fichiers, classes, story-boards, etc.).ios development architeture pour programmeur aC#

J'ai un contrôleur de vue "intérieur" et un contrôleur de vue "connexion/inscription". Lorsque l'utilisateur lance l'application, je dois vérifier si l'utilisateur est connecté ou non (en cherchant un fichier plist dans le dossier des documents) et ensuite décider si j'ai besoin de déclencher la séquence qui mène à l'intérieur. À ce jour, j'ai le contrôleur de vue "Connexion et inscription" et une liaison avec le contrôleur de vue "Intérieur".

Mon problème:

Je pense que si j'utilise le contrôleur de vue « se connecter/s'inscrire » pour vérifier si l'utilisateur est connecté ou non et déclencher le Segue à « l'intérieur » contrôleur de vue, je suis va voir une transition d'un contrôleur de vue à un autre, et ce n'est pas ce que je veux. Ce que je veux, c'est: "logo d'écran splash" puis "se connecter/s'inscrire" ou "inside".

Comment puis-je faire cela? Où dois-je implémenter la logique de vérification de fichier? Dois-je ajouter un contrôleur de vue avant?

Edit (je l'ai trouvé une solution basée sur la réponse H2CO3):

Ajouter un identifiant au contrôleur de vue de connexion et le principal contrôleur de vue, puis:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    BOOL user = TRUE; 
    NSString *segue = user ? @"in" : @"out"; 
    UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil]; 
    UIViewController *viewController = [storyBoard instantiateViewControllerWithIdentifier:segue]; 
    [self.window setRootViewController:viewController]; 
    return YES; 
} 

Répondre

0

Dans votre

application:didFinishLaunchingWithOptions: 

méthode de votre délégué de l'application, vérifiez l'état de connexion de l'utilisateur. S'il est connecté, afficher (alloc-init et show) le contrôleur de la vue principale, s'il ne l'est pas, afficher l'écran de connexion à la place.