2009-05-25 15 views
0

Die Hauptfunktionalität meiner App wird von einem UITabBarController gesteuert. Ich muss jedoch eine View laden, die über einen UINavigationController verfügt. Als ich zu meinem UITabBarController Rückkehr mitWechseln zwischen UITabBarController und UINavigationController

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

Mein UITabBarController reagiert nicht mehr auf Klicks. Es scheint, als hätte die Ansicht keinen Fokus.

Allerdings, wenn ich diesen Code verwenden, um die UITabBarController zu wechseln:

[window addSubview:tabBarController.view] 

Meine Tasten reagieren. Ich fühle mich wie "addSubview" ist weniger effizient, weil ich nie die Ansicht aus dem Fenster entfernen und daher muss eine zweite Kopie der Ansicht zum Stapel hinzufügen. Hab ich recht? Gibt es eine Möglichkeit, die erste Methode zu verwenden und meine Schaltflächen reagieren zu lassen? Lass es mich wissen, bitte.

Antwort

1

Es klingt vielleicht, als würden Sie den Nav Controller falsch darstellen. Sie sollten auf keinen Fall Ansichten direkt in das Fenster einfügen. Sie wollen es präsentieren

[myTabBarController presentModalViewController:myNavController animated:YES]; 

Verwendung Wenn Sie mit dem nav-Controller fertig sind entlassen Sie es mit

[myTabBarController dismissModalViewControllerAnimated:YES]; 

und alles sollte funktionieren.

BTW, dies ist alles dokumentiert in den Dokumenten für UIViewController und das "View Controller Programming Guide für iPhone OS" Dokument.

+0

n8gray ... du hast gerade mein Leben gerettet. Perfekt. Ich habe den Nav-Controller einfach falsch geöffnet. Ich schätze es sehr. Sie können den Beitrag bearbeiten, um diesen Gedankenstrich in dieser Zeile zu entfernen: [myTabBarController - discloseModalViewControllerAnimated: YES]; – Dave

+0

Hoppla! Ja, natürlich hast du Recht. Bearbeitet. Freue mich zu helfen! – n8gray

+0

Mayer SIE können mir helfen ... Jedes Mal, wenn ich versuche, '-dismissModalViewControllerAnimated:', bekomme ich diesen Fehler: 'UIViewControllerHierarchyInconsistency', Grund: 'presentViewController für Controller ist selbst auf entlassen für:

Verwandte Themen