Frage

In iPhone OS 3.0 können Sie die Elemente der Symbolleiste eines UINavigationController setzen die setToolbarItems:animated: Methode. Dies erfordert jedoch Sie in einer Reihe von UIToolbarItems passieren. Während ich programmatisch diese Symbolleiste Elemente erstellen könnte, würde ich sie lieber, wenn möglich im Interface Builder erstellen.

In diesem Sinne habe ich eine UIToolbar in „MyGreatViewController.xib“ erstellt und haben es mit dem gesuchten Elemente der Symbolleiste bevölkert. Dann in „MyGreatViewController.m“, erhalte ich die Elemente aus der Werkzeugleiste und geben sie nicht an setToolbarItems:animated::

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setToolbarItems: [toolbar items]];
}

... wo toolbar ist ein IBOutlet zum UIToolbar Bezug genommen wird.

Ist das ein guter Ansatz? Gibt es einen besseren Weg, dies zu erreichen? Sollte ich nur die Elemente programmatisch?

War es hilfreich?

Lösung

Es ist eine durchaus akzeptable Art und Weise, es zu tun, aber beachten Sie, dass das Laden xib Dateien auf dem iPhone recht teuer sind, und es kann gut schneller sein, um die Elemente der Symbolleiste programmatisch in Ihrer viewDidLoad Methode zu erstellen.

Andere Tipps

Ich weiß nicht, ob dies irgendwo dokumentiert ist, aber ich habe das im Interface Builder gefunden, wenn Sie die Navigationssteuerung in der Symbolleiste aktivieren, können Sie bar Elemente Ihre View-Controller ziehen, und sie werden in der aufkreuzen automagically Navigation-Controller in der Symbolleiste.

Zum Beispiel, hier ist das, was wir (mit Xcode 3.2 auf Snow Leopard) tun können:

  1. File-> Neues Projekt .... Wählen Sie Navigation-basierte Anwendung und erstellen Sie das Projekt.
  2. Öffnen MainWindow.xib in Interface Builder.
  3. Wählen Sie die Navigation-Controller, und im Inspektoren Attribute des Kontrollkästchen „Symbolleiste zeigt“. Dies wird ein Toolbar Objekt erscheinen lassen.
  4. Ziehen Sie einen Bar-Knopf Artikel aus der Bibliothek in die Symbolleiste. Es wird in der Symbolleiste angezeigt. Wenn Sie die Hierarchie in der NIB überprüfen, werden Sie sehen, dass dieses neue Element ein Kind des RootViewController ist.

Es scheint, dass jeder Bar Knopf Artikel als Kinder des Navigationspunktes hinzugefügt wird in der Navigationsleiste angezeigt und all Bar-Knopf Artikel als Kinder des View-Controller hinzugefügt wird in der Symbolleiste angezeigt.

(I auf dieses zufällig gestolpert. Wenn jemand Dokumentation für dieses Verhalten finden, oder jede zusätzliche Informationen, würde Ich mag, darüber zu hören.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top