2009-05-25 9 views
0

La fonctionnalité principale de mon application est contrôlée par un UITabBarController. Cependant, j'ai besoin de charger une vue qui a un UINavigationController. Quand je retourne à mon UITabBarController en utilisantBasculer entre UITabBarController et UINavigationController

 self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0]; 

Mon UITabBarController ne répond plus aux clics. Il semble que la vue n'a pas de focus.

Cependant, si j'utiliser ce code pour revenir à la UITabBarController:

[window addSubview:tabBarController.view] 

Mes boutons répondront. J'ai l'impression que "addSubview" est moins efficace car je ne supprime jamais la vue de la fenêtre et donc il faut ajouter une deuxième copie de la vue à la pile. Ai-je raison? Est-il possible d'utiliser la première méthode et de faire réagir mes boutons? S'il vous plaît, faites-moi savoir.

Répondre

1

Il semblerait que vous ne parliez pas correctement du contrôleur de navigation. Vous ne devriez définitivement pas ajouter de vues directement à la fenêtre. Vous voulez présenter en utilisant

[myTabBarController presentModalViewController:myNavController animated:YES]; 

Lorsque vous avez terminé avec le contrôleur de navigation vous rejetez avec

[myTabBarController dismissModalViewControllerAnimated:YES]; 

et tout devrait fonctionner. Par ailleurs, tout cela est documenté dans les documents relatifs à UIViewController et au document «Guide de programmation de View Controller pour iPhone OS».

+0

n8gray ... vous venez de me sauver la vie. Parfait. J'ouvrais simplement le contrôleur de navigation mal. J'apprécie vraiment cela. Vous souhaiterez peut-être modifier le post pour supprimer ce tiret dans cette ligne: [myTabBarController - dismissModalViewControllerAnimated: YES]; – Dave

+0

Oups! Oui, vous avez raison bien sûr. Édité. Heureux d'aider! – n8gray

+0

Mayer VOUS pouvez m'aider ... Chaque fois que j'essaie de '-dismissModalViewControllerAnimated:', j'obtiens cette erreur: 'UIViewControllerHierarchyInconsistency', raison: 'presentedViewController pour le contrôleur est lui-même sur le rejet de:

Questions connexes