Neuanordnen der Tab Bar Controller-Reihenfolge in StoryBoard


165

In meiner App iPhone App habe ich einen Tab Bar Controller mit 4 Beziehungen zu 4 verschiedenen Table View Controllern. Gibt es eine Möglichkeit, die Reihenfolge der Beziehung im StoryBoard grafisch neu zu ordnen? Ich kann keinen Weg finden, dies zu tun, und ich bin sicher, dass mir etwas fehlen muss!


Antworten:


254

Speichern Sie in 4.5 das Storyboard nach dem Hinzufügen eines Controllers, wechseln Sie zu einer anderen Datei und dann zurück zum Storyboard. Das Ziehen der Registerkarte sollte wieder funktionieren.


45
Tab ziehen! Ok, ich wusste nicht einmal, dass wir die Tabs ziehen können. Nicht sehr intuitiv, da Registerkarten nicht auswählbar sind ...
Pierre de LESPINAY

1
Wenn Sie es satt haben, die Xcode-Benutzeroberfläche mit Tab-Switch / Close-Beschwörungsformeln zu durchsuchen, sehen Sie sich einfach die Antwort von JannieT an. Es ist schnell und einfach.
Sixto Saez

Unintuitiv, aber es funktionierte auch für mich in Xcode 7.
Zeeple

Wenn Sie keine Elemente zum Ziehen sehen, kann dies daran liegen, dass Sie noch kein Symbol festgelegt haben. Ich stellte fest, dass es erst angezeigt wurde, als ich die Symbole eingestellt hatte!
Brian

1
nett :) wusste nicht einmal, dass es ziehbar sein kann
Amr Angry

132

Sie können die Reihenfolge einfach neu anordnen, indem Sie die Symbole in der Registerkartenleiste ziehen und ablegen


4
Wenn Sie benutzerdefinierte Registerkarten verwenden, können Sie diese per Drag & Drop verschieben, um sie neu anzuordnen. Auch wenn in der Tab Bar ControllerSzene ein grauer Balken angezeigt wird, ist das Balkenelement weiterhin vorhanden. Dies ist besonders unauffällig, wenn alle Ihre Barelemente benutzerdefinierte Elemente sind.
Gerald

Der einfachste und bequemste Weg. Funktioniert in Xcode 7.3.1. Swift 2.2
Mark Barrasso

Funktioniert in Xcode 9 - obwohl die Symbole unsichtbar waren.
Cesare


15

Ich konnte mit XCode 4.6 (mit einer der genannten Cobinierungen) kein Drag & Drop durchführen. Ich habe es gelöst , indem ich das Storybord im " Quellcode " -Modus geöffnet , den tabBarController gefunden und das Sequenz- Tag neu angeordnet habe .


Ich habe einen Tab-Bar-Controller, der in einem Split-View-Controller verschachtelt ist. Daher sind die Tabs des Tab-Bar-Controllers im Storyboard nicht sichtbar. Das Bearbeiten des Storyboard-Quellcodes hat bei mir funktioniert. Vielen Dank!
Scott Gardner

14

Ich weiß, dass das OP den Xcode Interface Builder verwendet und nach einer grafischen Methode fragt, aber für Entwickler, die mit Xamarin iOS Designer arbeiten, ist hier eine Problemumgehung, die ich verwende.

Öffnen Sie die .storyboard-Datei in einem Texteditor oder verwenden Sie Xcode, klicken Sie mit der rechten Maustaste auf das Storyboard-Element in Project Navigator und wählen Sie Als Quellcode öffnen . Suchen Sie im Storyboard-XML den <tabBarController ...>Knoten. Dann ordne ich die Reihenfolge der Segues im <connections>Abschnitt neu:

<connections>
    <segue destination="274" kind="relationship" relationship="viewControllers" id="286"/>
    <segue id="943" destination="910" kind="relationship" relationship="viewControllers"/>
    <segue destination="147" kind="relationship" relationship="viewControllers" id="159"/>
</connections>

Suchen Sie destination=im XML nach dem Attributwert, um festzustellen, auf welchen View Controller das Segue-Element zeigt.


1
Tolle Lösung. Ich hatte ein riesiges StoryBoard und das Entfernen und Neuerstellen der Segues hätte einige Zeit
gedauert

10

Ziehen Sie einfach die Registerkartensymbole in die Registerkartenleiste und legen Sie sie dort ab.

dh die Hauptregisterkartenleiste, die zum Registerkartenleisten-Controller gehört.

HTH

:: EDIT :: Das scheint also nicht zu funktionieren ... Ich bin mir sicher, dass es früher funktioniert hat.

Der einfachste Weg, den ich gefunden habe, besteht darin, die Registerkarten zu entfernen und sie in der Reihenfolge wieder hinzuzufügen, in der sie angezeigt werden sollen.

Hoffe das hilft.


LOL, bin gerade zum Testen gegangen und ich habe mich geirrt. Es tut uns leid. Habe das aber schon mal gemacht. Eine Sekunde ...
Fogmeister

Ja, ich glaube, ich erinnere mich, dass Drag & Drop funktioniert hat, obwohl ich mir da nicht sicher bin! Vielleicht haben sie etwas in Xcode geändert ..
BigLex

Ich habe es gerade versucht, und es hat gut funktioniert, die Registerkarten in Xcode 4.5
rdelmar

@rdelmar Haben Sie Ihr Projekt als Tab-Bar-Anwendung gestartet oder einer Single-View-Anwendung einen Tab-Bar-View-Controller hinzugefügt?
BigLex

5
Drag & Drop funktioniert, aber es wird hartnäckig, wenn Sie etwas im Storyboard getan haben, bevor Sie versuchen, die Registerkarten per Drag & Drop zu verschieben. Um dies zu beheben, wählen Sie eine andere Datei in Xcode aus und kehren Sie dann zu Ihrem Storyboard zurück. Drag & Drop funktioniert wieder. Sie müssen Xcode nicht schließen oder Ihre Controller erneut hinzufügen.
Memmons

9

Wie in den Kommentaren erwähnt, funktioniert Drag & Drop derzeit nicht (Xcode 4.5), nachdem ein Navigationscontroller hinzugefügt wurde. Allerdings Xcode Neustart , nachdem der Controller das Hinzufügen scheint wieder zu arbeiten Drag & Drop zu bekommen.


8

XCODE 10.1: Zoomen Sie das Storyboard. Ziehen Sie einfach Registerkartenelemente. (Keine Schicht keine andere)


2
Wie haben Sie gedacht, dies zu versuchen? 😃 Genial! 👏
GarySabo

7

Wenn Sie das Storyboard als "Quellcode-Ansicht" öffnen und dann schließen und als IB-Ansicht öffnen, scheint dies den Fehler zu beheben.


Dies funktionierte für mich (Xcode 8.1). Nach dem Öffnen des Storyboards in der Quellcode-Ansicht konnte ich es endgültig ziehen, um es neu anzuordnen.
Undrea

7

Hinzufügen zu der von allen bereitgestellten Drag & Drop-Methode. Ich habe dies als Antwort gepostet, damit ich Bilder einfügen kann. Versucht auf Xcode 7.3

Wenn Sie benutzerdefinierte Elemente verwenden tab bar item, können Sie diese per Drag & Drop verschieben, um sie neu anzuordnen. Auch wenn in der Tab Bar ControllerSzene ein grauer Balken angezeigt wird, ist das Balkenelement weiterhin vorhanden. Dies ist besonders unauffällig, wenn alle Ihre Barelemente benutzerdefinierte Elemente sind

Geben Sie hier die Bildbeschreibung ein Beschreibung


4

Ich verwende XCode 5.1 für die Entwicklung von iOS 7.1 und habe festgestellt, dass der folgende Ansatz zum Neuanordnen der Registerkarten in einem Registerkartenleisten-Controller funktioniert.

Um die Registerkarten in einem Registerkarten-Controller neu anzuordnen, löschen Sie die Segmente vom Registerkarten-Controller zu Ihren Unteransichts-Controllern. Zeichnen Sie dann die Segmente in der Reihenfolge neu, in der Sie die Registerkarten haben möchten. Zum "Neuzeichnen" meine ich, dass Sie das Ziehen vom Registerkarten-Controller zum Unteransichts-Controller steuern und Beziehungssegment (am Ende der Liste) => Ansichts-Controller auswählen.


3
wahr. Eine andere Möglichkeit besteht darin, das .storyboard als "Quellcode" zu bearbeiten, die Segmente zu finden (sie sind ein <segue> -Tag) und ihre Reihenfolge neu zu ordnen.
VoghDev

3

Sie können sicherstellen, dass die Option "Tab Controller Dock" in Ihrem Haupt-Storyboard auf "Ersthelfer" eingestellt ist, was das Problem für mich gelöst hat!


Ich habe einige dieser Ideen ausprobiert, da ich jetzt dieses Problem habe, egal welches Projekt ich jetzt anspreche (neu oder alt). Ich kann nicht herausfinden, was KayKay unter "Tab Controller Dock Option" versteht. Hat jemand irgendwelche Ideen?
LaurelS

3

Ich hatte das gleiche Problem nach dem Hinzufügen eines Navigationscontrollers.

Fix: Schließen Sie das Storyboard (Strg + Befehlstaste + W) und führen Sie einen sauberen Build-Ordner (Option + Befehlstaste + Umschalttaste + K) und eine regelmäßige Bereinigung (Befehlstaste + Umschalttaste + K) durch. Öffnen Sie das Storyboard erneut und Sie können die Elemente erneut ziehen.


1

Gleiches gilt für xCode 4.6. Ich habe ursprünglich das Tutorial zum Starten von Storyboards in ios verfolgt. Zum Zeitpunkt des Umschaltens des Elements auf TabBarController konnte ich die Reihenfolge nicht ändern. Ich habe versucht, es zu retten - hat nicht funktioniert; Sobald ich jedoch den XCode geschlossen und wieder geöffnet habe, hat es funktioniert.


1

Strg + Ziehen Sie das Element in TabBarController im Storyboard und ordnen Sie es an der gewünschten Position an.


Ich denke, es ist Option + Drag
GGirotto

0

Ich folgte dem raywenderlich-Tutorial auch für Storyboards und stellte fest, dass ich nach dem Hinzufügen des Tab-Controllers die Tabs nicht durch Ziehen neu anordnen konnte. Nun, anscheinend ist es nur ein Fehler in xcode. Beenden Sie einfach xcode, starten Sie es neu und dieses Mal können Sie die Registerkarten ziehen.


0

Für mich hat das Ziehen auch in XCode 7.3.1 nicht funktioniert. Ein Neustart von XCode hat nicht geholfen. Und keine der oben genannten Lösungen hat bei mir funktioniert.

Was mir geholfen hat: Ich habe die Beziehung zum zweiten Element gelöscht und bei gedrückter Strg-Taste von diesem Element zum Registerkarten-Controller gezogen und eine weitere Beziehung erstellt. Es war jetzt automatisch an zweiter Stelle.


0

Entfernen Sie alle Viewcontroller-Sequenzen mit der Registerkartenleiste. Sie müssen zuerst den Viewcontroller trennen, dann einen anderen Viewcontroller mit der Registerkartenleiste verbinden.

Kein Neustart von xcode und keine Änderung der Quellcodedatei erforderlich.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.