Mit einer UITabBar UND ein UINavigationController in einer app?
Hey alle, ich bin neu in iPhone-Entwicklung, und ich bin nicht zu verstehen, das ganze UINavigationController und UITabBarController Idee. Ist ein Ersatz für die anderen - wie machen apps wie Tweetie kombinieren?
Ich würde gerne meine app eine permanente Tab-Leiste an der Unterseite (die scheint zu funktionieren), aber auch eine Navigationsleiste am oberen Bildschirmrand können die push/pop-Ansichten auf den Bildschirm, ohne entfernen der tab-Leiste.
- Wie kann ich dies erreichen?
- Was sollte die Hierarchie so Aussehen wie in der IB so weit wie meine MainWindow.xib im Hinblick auf alle von diesen Controllern?
- Was ist die best practice hier?
Vielen Dank,
- Direkt aus der Tweetie coder den Mund: stackoverflow.com/questions/576764/...
InformationsquelleAutor barfoon | 2010-02-26
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur wickeln Sie den view-controller im inneren der
UINavigationController
und Ort derUINavigationController
innerhalb derUITabBar
.Dies funktioniert gut für Sie...
Beispiel:
Verwenden Sie den Assistenten für eine Tab-Bar-Anwendung, und stellen Sie es als normal. In jeder Registerkarte, wo Sie möchten, fügen Sie einen navigation-controller, erstellen Sie Sie in der XIB-mit der Bibliothek. Meine XIB hat:
Beachten Sie, dass es gibt nichts in der Ansicht. Sehen viewDidLoad unten, wo die UINavigationController wird befestigt, um die UIView.
In der header-Datei für die Register-ViewController (das habe ich hier genannt DescriptiveNameNavViewController -- gibt es nicht einen bestimmten standard für diese, aber ich [Etwas]NavViewController um mich daran zu erinnern, dass diese ViewController enthält eine Navigations-controller mit der navigation stack. Dies ist der name des Domänencontrollers, dass ich in der MainWindow.xib, die der Assistent generiert) einrichten eines UINavigationController * IBOutlet hat, dass der navigation-controller in der XIB angefügt:
In der Steuerung für die DescriptiveNameNavViewController , etwas wie das hier tun:
Einstellung der Delegierten in die DescriptiveNameNavViewController ist super-wichtig, denn sonst werden Sie nicht erhalten, die Methoden genannt, die Sie erwarten, in DescriptiveNameViewController Instanzen und alles, was Sie stoßen in der navigation-controller-stack.
In DescriptiveNameNavViewController, Umsetzung der UINavigationControllerDelegate Methoden wie diese:
... Und das wird dazu führen, dass Nachrichten bekommen propagiert Controller innerhalb des UINavigationController wie Sie erwarten. Es scheint, daß viele Probleme, die Menschen auftreten werden, weil die viewDidAppear: oder andere Methoden sind nicht immer genannt, auf der ViewControllers gedrängt in der NavigationController.
Sowieso, lassen Sie mich wissen, wenn Sie mehr Details würden helfen.