Einstellung symbolleistenelemente des UINavigationController
In iPhone OS 3.0 können Sie die Symbolleiste Elemente eines UINavigationController mit der setToolbarItems:animated:
Methode. Dies erfordert jedoch, dass Sie übergeben in einem array von UIToolbarItems. Während ich könnte programmgesteuert erstellen Sie diese Symbolleiste Artikel, würde ich lieber erstellen Sie im Interface Builder, wenn möglich.
Mit diesem Gedanken im Hinterkopf habe ich eine UIToolbar in "MyGreatViewController.xib" und bevölkert es mit dem wollte Symbolleiste Elemente. Dann, in "MyGreatViewController.m", bekomme ich die Elemente aus der Symbolleiste, und geben Sie Sie in setToolbarItems:animated:
:
- (void)viewDidLoad {
[super viewDidLoad];
[self setToolbarItems: [toolbar items]];
}
...wo toolbar
ist ein IBOutlet bezogen auf die UIToolbar.
Ist das ein guter Ansatz? Gibt es einen besseren Weg, dies zu erreichen? Sollte ich es nur schaffen, die Elemente programmgesteuert?
- Ich etwas nicht verstehe: Sie sagen "ich bekomme die Elemente aus der Symbolleiste", aber dann gibst du Sie zurück auf die Symbolleiste? Sind Sie nicht bereits angezeigt wird?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eine vollkommen akzeptable Art und Weise, es zu tun, aber Bedenken Sie, dass das laden xib-Dateien ist Recht teuer auf dem iPhone, und es kann gut sein, schneller zu erstellen, der Elemente der Symbolleisten programmgesteuert in Ihre viewDidLoad-Methode.
Ich weiß nicht, ob das dokumentiert ist überall, aber ich habe festgestellt, dass im Interface Builder, wenn Sie aktivieren die navigation controller in der Symbolleiste können Sie per drag-bar-Elemente, um Ihre view-controller, und Sie wird automatisch zeigen, bis in der navigation-controller-Symbolleiste.
Zum Beispiel, hier ist, was wir tun können (mit Xcode 3.2 auf Snow Leopard):
MainWindow.xib
im Interface Builder.RootViewController
.Es scheint, als ob ein Bar-Button-Items Hinzugefügt, die als Kinder von den Navigationspunkt, erscheint in der Navigationsleiste, und jeder Bar-Button-Items Hinzugefügt, die als Kinder von der view-controller wird in der Symbolleiste.
(Ich stolperte über diesen Zufall. Wenn jemand Dokumentation für dieses Verhalten, oder jede zusätzliche info, würde ich gerne davon zu hören.)
UIViewController
magisch laden der xib-wenn es einen passenden Namen.