Bar button item nicht angezeigt, in der navigationBar
Arbeite ich an einer app, wo meine erste view-controller eingebettet ist in eine Navigation-Controller und Tab bar controller.
In meiner app habe ich 3 verschiedene Registerkarten eine Registerkarte ist der Ansicht "Einstellungen". Dies ist ein tableview mit 5 Tasten. jeder button zeigt die gleiche Ansicht-controller, wenn Sie berührt ist.
Wenn ich Tippen auf eine der Schaltflächen,, ich habe noch eine schöne grüne Navigationsleiste, aber meine Tasten funktionieren nicht.
Ich versuchte, das ziehen in der Navigation den Punkt in der Ansicht in meinem storyboard und setzen Sie dann ein bar button item. Kann ich den button in meinem storyboard, aber es wird nicht zeigen, bis in meine app, wenn ich es laufen lasse.
Habe ich auch Hinzugefügt, den folgenden code zu meiner viewDidLoad():
let leftItem = UIBarButtonItem(title: "< Back", style: .Done, target: self, action: Selector("Save"))
let rightItem = UIBarButtonItem(title: "Save", style: .Plain, target: self, action: Selector("Save"))
//self.parentViewController?.navigationItem.leftBarButtonItem = leftItem //also doesn't work
navigationController?.navigationItem.leftBarButtonItem = leftItem
navigationController?.navigationItem.rightBarButtonItem = rightItem
Aber es keine Wirkung haben wird.
Ich habe überprüft, ob die richtige UIViewController zugewiesen wurde meiner Ansicht in der storyboard hat mehrere Saubere builds (CMD + Shift + K) und Umbauten (CMD + B).
Die folgenden Bilder sind ein screenshot von einem Teil meines storyboard und ein screenshot meiner app in der Ansicht, wo die buttons nicht angezeigt werden.
BEARBEITEN
Hinzugefügt einen neuen screenshot über die Steuerelemente in der Ansicht. Diese arbeiten nicht mit oder ohne den zusätzlichen code in meine viewDidLoad.
Danke! Mein problem ist gelöst. Wenn Sie können eine Antwort, ich werde es akzeptieren.
InformationsquelleAutor Jules | 2015-11-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Löschen Ihre erste Navigations-controller, der zweite, den Sie nicht brauchen, um hinzuzufügen, zurück-Taste nur mit push-segue, Dritte versuchen Sie selbst.navigationItem.leftBarButtonItem(versuchen Sie selbst am Anfang.) *Original-Antwort war ein Kommentar.
InformationsquelleAutor Ersin Sezgin
Statt
tun
Update ich schlage vor, Sie fügen Sie direkt in das storyboard, um Ihre Viewcontroller
aktualisiert meine Antwort, können Sie nicht fügen Sie Sie über storyboard? Sie haben per drag&drop in ein navigationItem ersten
NÖ, funktioniert nicht. Ich aktualisiert meine Frage mit einem screenshot des controls habe ich Hinzugefügt, um die Ansicht in meinem storyboard.
haben Sie ziehen die navigationItem der navigationBar? Scheint, wie Sie nur schleppen ihn in Ihre ViewController
Ich habe es nur wieder, aber es scheint kein navigationBar zur Verfügung. Wenn ich hinzufügen, ich sehe eine kleine Zeile unter meinem aktuellen Navigationsleiste. Entfernen der ersten Navigation-Controller (das war die erste view-controller) ist mein problem gelöst. Vielen Dank für die Hilfe.
InformationsquelleAutor MarkHim
Hatte ich zwei leitet über: eine über ein storyboard segue, und eine programmatische. Das storyboard segue ergab die Tasten wie erwartet. Die progammatic segue, jedoch zeigten die Ansicht ohne die Tasten.
Für die programmatische segue, ich war mit:
Den Tasten erschien und funktioniert korrekt, wenn das habe ich geändert zu:
Pro die Dokumentation
present(...)
stellt den Modal-view-controller. Offenbar ein modal-view-controller nicht die nav bar buttons. Ich bestätigte dies, indem Sie meinen storyboard segue zuPresent Modally
- und die Tasten verschwand es auch dort.(Mit Xcode 9, Swift 4)
InformationsquelleAutor leanne
Diese mir kürzlich passiert ist. Ich Tat das, was Ersin erwähnt, aber ohne Erfolg. Zurück ein wenig mehr und fand heraus, dass dies der übeltäter war:
nav.pushViewController(notifications, animated: false)
nav.pushViewController(interactionCreateOrEdit, animated: false)
Ich es geändert
nav.setViewControllers([notifications, interactionCreateOrEdit], animated: false)
und die UIBarButtonItems begann wieder aufzutreten.
InformationsquelleAutor Michael McKenna
diesen Code Schreiben, auf die Methode ViewWillAppear.
InformationsquelleAutor saraman