Swift 3.0 Hinzufügen eines Rechts-Taste, um die Navigation Bar
Ich habe eine Navigationsleiste auf der Spitze eines view-Controllers. Ich bin versucht zu kontrollieren, ob eine Schaltfläche sichtbar ist, basiert auf einer Bedingung, aber ich habe Probleme beim hinzufügen der Schaltfläche. Bisher habe ich,
var addButton: UIBarButtonItem = UIBarButtonItem(title: "test", style: .done, target: self, action: #selector(addTapped))
override func viewDidLoad() {
super.viewDidLoad()
let boool = true
if boool {
self.navigationItem.rightBarButtonItem = self.addButton
}
else {
self.navigationItem.rightBarButtonItem = nil
}
}
func addTapped(sender: AnyObject) {
print("hjxdbsdhjbv")
}
Glaube ich, ist es nicht korrekt funktioniert, denn ich habe eine Navigationsleiste die in der VC, anstelle der Verwendung eines Navigations-controller und arbeitet mit der bar dort. Ich Frage mich, ob es war ein Weg, um die Arbeit mit dieser Navigationsleiste.
Sind Sie sicher, dass
Ich denke, man muss initialisieren Sie Ihre selbst.addButton, bevor
ändern Sie diese Zeile
Ich habe bearbeitet Sie meine Frage, um die änderungen widerzuspiegeln, aber beim laden gibt es immer noch keinen button auf der rechten Seite.
self.addButton
Punkte zu einer tatsächlichen UIBarButtonItem
und ist nicht nil? Wie ist es eingerichtet?Ich denke, man muss initialisieren Sie Ihre selbst.addButton, bevor
ändern Sie diese Zeile
var addButton: UIBarButtonItem!
für diese var addButton: UIBarButtonItem = UIBarButtonItem(title: "test", style: .done, target: self, action: #selector(self.yourselector))
Ich habe bearbeitet Sie meine Frage, um die änderungen widerzuspiegeln, aber beim laden gibt es immer noch keinen button auf der rechten Seite.
InformationsquelleAutor Kevin | 2017-07-13
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sagen Sie, Sie Hinzugefügt eine
UINavigationBar
auf Ihre view-controller über storyboard, aber ein Blick auf den code, den Sie zur Verfügung gestellt es ist keine Steckdose-Verbindung zu Ihrem mit der Navigationsleiste in der IB.Werden, um Zugriff auf
self.navigationItem
Ihre view-controller eingebettet werden müssen in einUINavigationController
oder Teil einer Hierarchie ist. Es sei denn, Sie haben ein Bedürfnis für eine benutzerdefinierte Navigationsleiste auf einer einzelnen view-controller, ich schlage vor, zu entfernen, die von Interface Builder, dann machen Sie sicher, dass entweder der view-controller in Frage, ist eingebettet in eineUINavigationController
oder es wird geschoben auf die navigation stack von einem anderen controller, die eingebettet ist in eine navigation-controller und dann sollten Sie IhrenUIBarButtonItem
.Nachdem Sie Ihre view-Controller, eingebettet in eine Navigations-controller ermöglicht es Ihnen, eine übersichtliche navigation stack im interface builder, und für jeden view-controller, navigation-stack, haben Sie Zugriff auf die gleiche Navigationsleiste. Stattdessen können Sie hinzufügen einer Navigationsleiste, um einen view-controller, und Sie haben dann um ein weiteres zu den nächsten view-controller, während die Verwaltung jeweils separat.
InformationsquelleAutor Kyle H
Ist es einfach. Setzen Sie diese Zeile von code, um die
viewDidLoad
:Funktioniert mit Swift 4
Vielen Dank, aber warum?
InformationsquelleAutor Mannopson
InformationsquelleAutor Urvish Modi
Erstens, Sie benötigen, verbinden Sie die Navigationsleiste, um ein IBOutlet, so dass Sie verweisen in Ihrem code. Nach, dass, sollte dieser code funktionieren:
Der view-controller wird es zurück gehen zu müssen, um seine eigene UINavigationBar. Dies ist der Grund, warum es ist besser ein UINavigationController.
InformationsquelleAutor Stefan S
Swift 4.2;
Hinzufügen
viewController
Hinzufügen
Class
Ihre API-oder Utility-KlasseInformationsquelleAutor ikbal
getestet in Xcode 10.2, swift 5.0;
Zuerst habe ich eingebettet haben meine ViewController in UINavigationController in IB.
Dann in ViewDidLoad gehören diese Zeilen
Hinweis - der Zugriff auf Titel, oder die hinzufügen-Taste durch navigation-controller nicht funktioniert. Zum Beispiel : einstellen der Titel - Selbst.navigationcontroller.navigationItem.Titel hat nicht funktioniert ,
InformationsquelleAutor akr ios