ios - item - xcode navigation bar




xcode/storyboard: Die Leistenschaltfläche kann nicht in die Symbolleiste oben gezogen werden (13)

Ich habe einen Ansichtscontroller, der die Detailansicht einer Tabelle ist. Wenn Sie auf die Zeile der Tabelle klicken, gelangen Sie in die Detailansicht. Die Detailansicht ist in einen Navigationscontroller eingebettet, sodass sich oben links in der Navigationsleiste eine Schaltfläche befindet, über die Sie zurück zur Tabelle gelangen. 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 dies einen weiteren Ansichts-Controller modal hinzufügt, mit dem Sie die Details des Elements bearbeiten können. Standard Zeug.

Wenn ich jedoch versuche, ein Element der Leistenschaltfläche aus der Liste der Objekte in die Navigationsleiste zu ziehen, dauert es nicht. Wenn ich stattdessen die Maustaste loslasse, bleibt die Leistenschaltfläche auf dem Registerleisten-Controller unten. (Mein Navigationsschema enthält verschiedene Registerkarten und für jede Registerkarte eine Tabelle, eine Detailansicht usw.)

Jeder, der zuvor darauf gestoßen ist, kann vorschlagen, was ich falsch mache, oder eine Art Problemumgehung, um das Element der Leistenschaltfläche auf der rechten Seite des Navigationsbildschirms hinzuzufügen. Muss ich es im Code hinzufügen?

Vielen Dank für alle Vorschläge.


Böser Trick:

  1. Ändern Sie Ihre Segue, um zu drücken.
  2. Stellen Sie den gewünschten Inhalt ein
  3. Zurücksetzen, um anzuzeigen

Dann kann der Inhalt bearbeitet werden und Sie haben einen nicht veralteten Stil für die Übergabe.


Dem Ansichtscontroller Ihres Storyboards fehlt wahrscheinlich ein Navigation Item . Sie können ein Objekt aus der Objektbibliothek ziehen und auf Ihrem View-Controller ablegen.

Anschließend können Sie Schaltflächenelemente der Leiste per Drag & Drop auf die linke oder rechte Seite der Navigationsleiste ziehen.


Es ist eigentlich ein Xcode-Problem. Ein Trick, der bei mir funktioniert hat, ist das Hinzufügen der Leistenschaltfläche in der STRUKTUR DER VIEW-DATEI AUF DER LINKEN Seite. Hoffe es hilft dir. :)


Für XCode 8

Hier gibt es viele Antworten. Ich habe einige von ihnen ausprobiert, aber ich konnte es nicht schaffen. Also habe ich meine Lösung gefunden, wähle einfach deinen ViewController , gehe zum Attribut-Inspektor und ändere die obere Leiste in undurchsichtige Navigationsleiste und Boom. Sie sehen die Navigationsleiste in Ihrem Storyboard. Sie können den Titel ändern oder einen Artikel hinzufügen. Wenn Sie nicht undurchsichtig bleiben möchten, können Sie den Stil in Abgeleitet ändern.


Haben Sie versucht, Ihr Projekt zu "säubern"? Ich weiß, das hilft mir manchmal (gehe einfach zu "Produkt"> "Reinigen"). Alternativ können Sie die Navigationsleiste löschen und erneut versuchen.

Wenn Sie glauben, dass es sich um einen Programmierfehler handelt, können Sie Ihren Code gerne weitergeben. Ich würde gerne helfen, so gut ich kann. :)


Ich denke das ist ein Bug von Xcode. Ändern Sie in Xcode 8 den Bereich im Storyboard vor dem Steuerelement für die Ansicht der Registerkartenleiste auf alle seine Optionen ( show detail anzeigen, present ...). Dann zurück zu show . Versuchen Sie, Elemente der Leistenschaltflächen zu ziehen und die Kachel zu ändern. Für mich geht das!


Ich glaube, es ist eine XCode-Eigenheit. Ich hatte das gleiche Problem. Ich musste Xcode zurücksetzen und die Platzierung der Dinge auf dem Storyboard verschieben, um es endlich zum Laufen zu bringen. Es funktioniert jetzt.


Ich habe das gleiche Problem mit Xcode6 und habe festgestellt, dass UINavigationItem automatisch für den ersten ViewController hinzugefügt wird, den Sie in NavigationController einbetten. Für die nachfolgenden ViewController müssen Sie es jedoch manuell wie folgt hinzufügen:

  1. Suchen Sie in der Objektbibliothek das Navigationselement und ziehen Sie es auf Ihren 2. ViewController im Storyboard.
  2. Suchen Sie in der Objektbibliothek nach Bar Button Item und ziehen Sie es auf das Navigationselement, das Sie im vorherigen Schritt erstellt haben.

Jetzt haben Sie Ihre Balkenknöpfe oben in Ihrer Szene.

Update Die Lösung funktioniert immer noch mit XCode 7, aber ich wollte ein aussagekräftigeres Foto hinzufügen. Nur für den Fall, dass jemand die oben genannten Standard- oder technischen Namen nicht wirklich kennt. Beachten Sie die roten Pfeile rechts. Sie beziehen sich auf die oben genannten Schritte 1 und 2. Beachten Sie auch die Hierarchie der Ansichten im linken roten Rechteck.


Ich hatte auch das gleiche Problem. Ich konnte dieses Problem beheben, indem ich die Option für den Stammansichts-Controller auswählte und dann in der simulierten Matrix die Option für die obere Leiste in die undurchsichtige Navigationsleiste änderte und das Element oben auf der Navigationsleiste hinzufügen konnte Diese Antwort wird jemandem helfen.


Ich hatte auch dieses Problem, schließe das Projekt und öffne es wieder.


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.


Sie müssen xCode IDE zurücksetzen. Schließen Sie xCode und schreiben Sie die folgenden Codes in das 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

Ziehen Sie den "Bar Button Item" nicht auf den "Navigation Controller", sondern 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" eingefügt.





uibarbuttonitem