iOS - Setzen Sie UIToolBarItem auf UINavigationController
-
27-10-2019 - |
Frage
Ich ziehe ein Toolbaritem im Storyboard heraus und setze es auf meinem Navigationscontroller, aber wenn ich meinen Code ausführe, ist er nicht vorhanden. Fehlt mir etwas?
BEARBEITEN:
Ich habe versucht, es auch in meiner viewDidLoad-Methode im Code festzulegen:
UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Map" style:UIBarButtonItemStyleBordered target:self action:@selector(viewMap)];
self.navigationItem.rightBarButtonItem = rightBarButton;
Funktioniert auch nicht.
So ist es in meinem Storyboard eingerichtet:
UPDATE:
Ich habe gerade mein Problem gefunden.Wenn ich in meinem Controller-Code den Inhalt aktualisiere, ändere ich das Element der rechten Leistenschaltfläche für einen Spinner und setze es nie wieder auf das zurück, was es zuvor hatte.
Lösung
UINavigationController
verfügt bereits über eine integrierte Symbolleiste. Es verfügt über eine Eigenschaft toolBarHidden
, die standardmäßig auf YES
festgelegt ist, weshalb sie normalerweise nicht angezeigt wird. Wenn Sie ein Storyboard verwenden, können Sie die integrierte untere Symbolleiste einfach sichtbar machen, indem Sie das Kontrollkästchen "Symbolleiste anzeigen" im Inspektor aktivieren, wenn der Navigationscontroller ausgewählt ist.
Die UINavigationController-Dokumentation finden Sie hier für weitere Details.
Andere Tipps
Um ein Element zu einer Navigationsleiste hinzuzufügen, müssen Sie dem im Ansichtscontroller enthaltenen Navigationselement einen generischen Codetagcode hinzufügen.Gehen Sie zu Ihrem Storyboard, suchen Sie die richtige VC und suchen Sie das Navigationselement (es befindet sich in der Hierarchie, die in der Szene des Navigationscontrollers angezeigt wird).Ziehen Sie einfach ein Balkenschaltflächenelement in diese Hierarchie unter dem Navigationselement oder direkt auf die Navigationsleiste in der Visual Builder-Anzeige.
Der Navigationscontroller betrachtet das Navigationselement Ihres VC nur, wenn dieser VC auf den Stapel geschoben wird.Daher hat das Ändern des Navigationselements des VC im Bar Button Item
keine Auswirkung.
(Ich habe dies programmgesteuert schon einmal gemacht, aber ich habe den Code nicht dabei, also werde ich ihn vielleicht später hinzufügen ...)