0

J'ai un problème étrange. J'ai trouvé quelques conseils ici et sur internet mais je n'ai rien résolu mon problème. Voici ce qui se passe:popViewController ne supprime pas les éléments UINavigationBar

J'ai une navigation TabBar avec 9 éléments. Tous sont des UINavigationItems. Sur l'un d'entre eux, je remplace le viewController par défaut avec un autre dans certaines conditions.

Pour ce faire, j'utilise popViewController et pushViewController. Cela fonctionne parfaitement mais j'ai le problème, que le UINavigationBar n'est pas synchronisé avec cela. Cela a pour effet que je vois la bonne vue, mais quand je clique sur le bouton "retour", il se décale vers un élément de barre de navigation vide et de là je reviens à rootViewController ("plus" par exemple).

Voici mon code:


- (void)viewWillAppear:(BOOL)animated { 
    if ([[myAppDelegate bcUser] userLoggedIn]) { 
    // user is logged in 
    MyDataLoggedInViewController *loggedInViewController = [[[MyDataLoggedInViewController alloc] initWithNibName:@"MyDataLoggedInView" bundle:nil] autorelease]; 
    UINavigationController *navController = self.navigationController; 
    [[self retain] autorelease]; 

    [navController popViewControllerAnimated:YES]; 
    [navController pushViewController:loggedInViewController animated:YES]; 
    } 
} 

J'espère que quelqu'un peut vous aider. J'ai essayé tout ce que j'ai trouvé et rien n'a aidé. : -/

Merci et meilleurs voeux, Thomas

Répondre

0

réglage Essayez:

[navController popViewControllerAnimated:NO]; 
[navController pushViewController:loggedInViewController animated:NO]; 

parce que vous attendez le plus probable pour les animations pour terminer.

+0

Soit cela ou vous avez besoin de réinitialiser le rootView de votre UINavigationController. – Brirony

+0

Malheureusement, cela n'aide pas. Je l'ai déjà essayé sans succès. Que signifie "réinitialiser le rootView"? – thomas

+0

[Référence de la classe UINavigationController] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html) rootView de navigationController est le viewController qui se trouve à la position 0 (le bas) de votre pile de navigation. – Brirony

Questions connexes