2012-11-29 7 views
0

Dans une application basée sur des onglets, j'ai créé un écran de démarrage et l'ai défini en tant que contrôleur de vue racine. Dans le splashViewController, je veux définir le contrôleur de tabulation en tant que windows rootViewController.Comment rediriger correctement d'un écran splash vers tabBarController?

SplashViewController *splashViewController = [[SplashViewController alloc]initWithNibName:nil bundle:nil]; 
splashViewController.loginview = loginview; 

self.window.rootViewController = splashViewController; 

// SplashViewController

[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(animationFinished) userInfo:nil repeats:nil]; 

-(void)animationFinished 
{ 
    Appdelegate *delegate = (AppDelegate*)([UIApplication sharedApplication].delegate); 
    delegate.window.rootViewController = delegate.tabBarController; 
} 

Tout le code fonctionne sans erreur, la méthode d'animation terminée est aussi appelé. Cependant, l'écran de démarrage reste toujours et l'utilisateur n'est pas redirigé vers tabBarController même après avoir configuré le rootViewController de Windows en tant que contrôleur de tabulation. Qu'est-ce que je fais de mal?

+0

Avez-vous initialisé tabBarController? Vérifiez si delegate.tabBarController n'est pas nul. –

Répondre

1

Il serait plus simple de commencer avec le contrôleur de barre d'onglets comme racine de votre application et, si vous devez absolument avoir un écran de démarrage, de le présenter comme un affichage modal. Ainsi, lorsque vous fermez le contrôleur modal, vous continuez avec l'application réelle.

+0

Si c'est juste un écran d'accueil pourquoi ne pas utiliser l'image statique que vous avez à fournir avec une application de toute façon? – Nick

+0

@Nick - Peut-être parce que c'est l'une des choses que les directives d'interface disent explicitement à éviter: http://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html#// apple_ref/doc/uid/TP40006556-CH14-SW5 –

+0

convenu, je ne le ferais pas, mais si vous avez un contrôleur comme écran de démarrage, vous allez devoir soumettre un écran de démarrage pour votre écran de démarrage;) – Nick

Questions connexes