Ich habe einen Ansichtscontroller, der die Detailansicht einer Tabelle ist. Wenn Sie auf die Zeile der Tabelle klicken, gelangen Sie zur Detailansicht. Die Detailansicht ist in einen Navigationscontroller eingebettet, sodass sich oben links in der Navigationsleiste eine Schaltfläche befindet, die Sie zur Tabelle zurückschickt. So weit, ist es gut.
Ich möchte jetzt eine Bearbeitungsschaltfläche auf der rechten Seite der Navigationsleiste hinzufügen, damit Sie die Detailansicht bearbeiten können. Mein Plan ist, dass dadurch ein weiterer View-Controller hinzugefügt wird, mit dem Sie die Details des Elements bearbeiten können. Standard Zeug.
Wenn ich jedoch versuche, ein Bar-Schaltflächenelement aus der Objektliste in die Navigationsleiste zu ziehen, ist dies nicht erforderlich. Wenn ich stattdessen die Maustaste loslasse, bleibt die Balkenschaltfläche in der Registerkartenleiste unten. (Mein Navigationsschema enthält verschiedene Registerkarten und für jede Registerkarte eine Tabelle, Detailansicht usw.)
Jeder stößt schon früher darauf und kann vorschlagen, was ich falsch mache, oder eine Art Problemumgehung, um den Bar-Schaltflächeneintrag auf der rechten Seite des Navigationsbildschirms hinzuzufügen. Muss ich es im Code hinzufügen?
Danke für alle Vorschläge.
Ich habe das gleiche Problem mit Xcode6, und ich habe festgestellt, dass UINavigationItem automatisch für den ersten ViewController hinzugefügt wird, den Sie in NavigationController einbetten.
Jetzt werden Ihre Balkenknöpfe oben in Ihrer Szene angebracht.
Update Die Lösung funktioniert immer noch mit XCode 7, aber ich wollte ein beschreibenderes Foto hinzufügen. Nur für den Fall, dass jemand mit den oben genannten Standard- oder technischen Namen nicht wirklich vertraut ist. Beachten Sie die roten Pfeile rechts, sie beziehen sich auf Schritt 1, Schritt 2, der oben erwähnt wurde. Beachten Sie auch die Hierarchie der Ansichten im linken roten Rechteck.
Böser Trick:
Der Inhalt kann dann bearbeitet werden, und Sie haben einen nicht veralteten Stil für die Übergabe.
In Ihrem Viewboard für das Storyboard fehlt wahrscheinlich ein Navigation Item
. Sie können einen aus der Objektbibliothek ziehen und auf Ihrem View Controller ablegen.
Sie können dann Elemente der Leistenschaltfläche auf die linke oder rechte Seite der Navigationsleiste ziehen.
ich habe es gelöst. Ziehen Sie unter "Navigationselement" in Ihre Detailansicht. als Sie im Bar Button Element ziehen können.
Ich habe dieses Problem behoben. Statt einen UINavigationController in das Storyboard zu ziehen und zu versuchen, UIBarButtonItems hinzuzufügen, zog ich einen UITableViewController mit und ging dann zu
Editor-> Embed In-> Navigationscontroller
Dies ergab das gleiche Ergebnis wie zuvor, nur dass ich UIBarButtonItems auf beiden Seiten der Navigationsleiste ohne Probleme hinzufügen konnte.
Das ist eigentlich ein Xcode-Problem . Ein Trick, der für mich funktioniert hat, ist das Hinzufügen des Bar-Buttons in der DATEI-STRUKTUR AUF LINKS ANSICHTEN.
Ich hatte auch dieses Problem, schließen und öffnen Sie das Projekt für mich.
Ich denke, das ist ein Fehler von Xcode. Ändern Sie in Xcode 8 die Variable segue
im Storyboard vor dem Controller für die Registerkartenleiste auf alle Optionen (show detail
, present
...). Dann zurück zu show
. Versuchen Sie, Schaltflächenelemente zu ziehen und die Kachel zu ändern. Für mich geht das!
Ich glaube, es ist eine XCode-Variante. Ich hatte das gleiche Problem. Ich musste Xcode zurücksetzen und die Anordnung der Dinge auf dem Storyboard verschieben, um es endlich zum Laufen zu bringen. Es funktioniert jetzt.
Gleicher Fehler. Ich hatte einen Table View Controller in einem Navigationscontroller und viele ViewControllers im weiteren Verlauf der Kette. Ein 'Navigationselement' wurde automatisch für den FIRST Root View Controller erstellt, und ich konnte problemlos ein 'Bar Button-Element' hinzufügen. Ziehen Sie das Storyboard per Drag & Drop. Aber das ist alles. Auf dem folgenden Table-View-Controller und weiteren View-Controllern, obwohl sie sich im ursprünglichen Navigations-Controller befanden (automatische Rückschalttaste wurde angezeigt), konnte ich in Storyboard niemals ein Bar-Button-Element hinzufügen.
Die Lösung von Wael Showair hat für mich nicht funktioniert. Bar-Button-Elemente werden nicht angezeigt.
Ich habe es am Ende programmgesteuert gelöst (Swift 2.0):
var testButton = UIBarButtonItem(title: "Test Button", style .Plain, target: self, action: "testButtonMethod")
self.tabBarController?.navigationItem.rightBarButtonItem = testButton
Kein zusätzliches Navigationselement oder Bar-Schaltflächenelement erforderlich.
Ich hatte das gleiche Problem in xcode 8. Ich musste xcode einfach schließen und das Projekt erneut öffnen. Anschließend konnte ich die Leiste ohne Probleme zum Root-Controller hinzufügen.
Haben Sie versucht, Ihr Projekt zu "reinigen"? Ich weiß, dass mir das manchmal hilft (gehe einfach zu "Produkt"> "Reinigen"). Oder löschen Sie alternativ die Navigationsleiste und versuchen Sie es erneut.
Wenn Sie glauben, dass es sich um einen Programmierfehler handelt, können Sie Ihren Code gerne weitergeben. Ich helfe Ihnen gerne, soweit ich kann. :)
Für XCode 8
Hier gibt es viele Antworten. Ich habe einige von ihnen ausprobiert, konnte es aber nicht schaffen ... Ich habe meine Lösung gefunden. Wählen Sie einfach Ihre ViewController
aus, gehen Sie zu Attributes Inspector und ändern Sie Top Bar in Opaque-Navigationsleiste und Boom. Sie sehen die Navigationsleiste in Ihrem Storyboard. Sie können den Titel ändern oder etwas hinzufügen. Wenn Sie Opaque nicht beibehalten möchten, können Sie den Stil in Inferred ändern.
Sie müssen xCode IDE zurücksetzen. Schließen Sie xCode und schreiben Sie die folgenden Codes am Terminal ... Es wird funktionieren.
rm -rf $HOME/Library/Application Support/Developer/Shared/Xcode
rm -rf $HOME/Library/Preferences/com.Apple.dt.Xcode.*
rm -rf $HOME/Library/Saved\ Application\ State/com.Apple.dt.Xcode.savedState
rm -rf $HOME/Library/Developer/Xcode
Ich war auch mit dem gleichen Problem konfrontiert. Ich konnte dieses Problem beheben, indem ich die Root-Ansichtssteuerungsoption auswählte, und dann in der simulierten Matrix die Option Oberste Leiste in Opake Navigationsleiste änderte und das Element oben in der Navigationsleiste hinzufügen konnte Diese Antwort wird jemandem helfen.
In Xcode 10 habe ich die Art der Überblendung für diesen neuen Ansichtscontroller in "Push (veraltet)" geändert und das Navigationselement so hinzugefügt, wie es nach dieser Änderung zulässig war. Wenn Sie zu Ihrem ursprünglich gewünschten Seguetyp zurückkehren, bleibt das Navigationselement erhalten.
Ziehen Sie das "Bar Button Item" nicht auf den "Navigation Controller", sondern ziehen Sie es auf den "Detail View Controller". Wenn Sie die Detailansicht in die "Navigationsansicht" einbetten, wird "Navigationselement" zum "Detailansicht-Controller" hinzugefügt. Wenn Sie das "Bar Button Item" auf die rechte Seite des Navigationselements ziehen, wird das Element unter "Right Bar Button Items" angezeigt.
wie Mark Lyons sagte, habe ich die gleiche Lösung verwendet.