Réorganiser l'ordre du contrôleur de la barre d'onglets dans StoryBoard

166

Dans mon application iPhone, j'ai un contrôleur de barre d'onglets avec 4 relations avec 4 contrôleurs de vue de table différents. Existe-t-il un moyen de réorganiser graphiquement l'ordre de la relation dans le StoryBoard? Je ne trouve pas de moyen de le faire et je suis sûr que je dois manquer quelque chose!

BigLex
la source

Réponses:

255

Dans 4.5, enregistrez le storyboard après avoir ajouté un contrôleur, passez à un autre fichier, puis revenez au storyboard et le glissement des onglets devrait fonctionner à nouveau.

abitofcode
la source
45
Onglet glisser! Ok, je ne savais même pas que nous pouvions faire glisser les onglets. Pas très intuitif car les onglets ne sont pas sélectionnables ...
Pierre de LESPINAY
1
Si vous en avez assez de fouiller dans l'interface utilisateur Xcode avec un commutateur d'onglet / fermer les incantations, regardez simplement la réponse de JannieT. C'est simple et rapide.
Sixto Saez
Peu intuitif mais cela a fonctionné pour moi aussi dans Xcode 7.
zeeple
Si vous ne voyez pas d'éléments à faire glisser, c'est peut-être parce que vous n'avez pas encore défini d'icône. J'ai trouvé qu'il n'apparaissait pas avant d'avoir défini les icônes!
Brian
1
nice :) ne savait même pas qu'il pouvait être traîné
Amr Angry
133

Vous pouvez simplement réorganiser l'ordre en faisant glisser et en déposant les icônes dans le contrôleur de la barre d'onglets

Indy Bains
la source
4
Si vous utilisez des onglets personnalisés, vous pouvez toujours faire glisser et déposer pour réorganiser même si la Tab Bar Controllerscène affiche une barre grise, l'élément de barre est toujours là. Ceci est particulièrement discret lorsque tous vos articles de bar sont des articles personnalisés.
Gerald
Le moyen le plus simple et le plus pratique. Fonctionne dans Xcode 7.3.1. Swift 2.2
Mark Barrasso
Fonctionne dans Xcode 9 - bien que les icônes soient invisibles.
Cesare
17

SHIFT + DRAG fonctionne sur Xcode 10.0

Beau
la source
1
Aussi simple que cela.
bikram le
15

Je n'ai pas pu glisser-déposer avec XCode 4.6 (avec l'une des cobinations mentionnées). Je l' ai résolu d' ouvrir le storybord dans « code source mode », la localisation du tabBarController et réarranger la seque tag.

Nicola
la source
J'ai un contrôleur de barre d'onglets imbriqué dans un contrôleur de vue fractionnée et, par conséquent, les onglets du contrôleur de barre d'onglets ne sont pas visibles dans le storyboard. La modification du code source du storyboard a fonctionné pour moi. Merci!
Scott Gardner
14

Je sais que l'OP utilise le générateur d'interface Xcode et demande un moyen graphique de le faire, mais pour les développeurs travaillant avec Xamarin iOS Designer, voici une solution de contournement que j'utilise.

Ouvrez le fichier .storyboard dans un éditeur de texte ou à l'aide de Xcode, cliquez avec le bouton droit sur l'élément de storyboard dans le navigateur de projet et sélectionnez Ouvrir en tant que code source. Dans le storyboard XML, localisez le <tabBarController ...>nœud. Ensuite, je réorganise l'ordre des segues dans la <connections>section:

<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>

Recherchez la destination=valeur d'attribut dans le XML pour déterminer sur quel contrôleur de vue l'élément segue pointe.

Jannie Theunissen
la source
1
Excellente solution. J'avais un énorme StoryBoard et supprimer et recréer les segues aurait pris du temps
YYamil
10

Faites simplement glisser et déposez les icônes d'onglets dans la barre d'onglets.

c'est-à-dire la barre d'onglets principale qui appartient au contrôleur de la barre d'onglets.

HTH

:: EDIT :: Donc cela ne semble pas fonctionner ... Je suis sûr que c'était le cas auparavant.

Quoi qu'il en soit, le moyen le plus simple que j'ai trouvé est de supprimer les onglets et de les rajouter dans l'ordre dans lequel vous souhaitez qu'ils s'affichent.

J'espère que cela t'aides.

Fogmeister
la source
LOL, je viens de tester et je me suis trompé. Désolé. J'ai déjà fait cela. One sec ...
Fogmeister
Ouais, je pense que je me souviens que le glisser-déposer fonctionnait même si je n'en suis pas sûr! Peut-être qu'ils ont changé quelque chose dans Xcode ..
BigLex
Je viens de l'essayer, et cela a bien fonctionné de simplement faire glisser les onglets dans Xcode 4.5
rdelmar
@rdelmar avez-vous commencé votre projet en tant qu'application de barre d'onglets ou avez-vous ajouté un contrôleur de vue de barre d'onglets à une application de vue unique?
BigLex
5
Le glisser-déposer fonctionne, mais il devient têtu si vous avez fait quelque chose dans le storyboard avant d'essayer de glisser-déposer les onglets. Pour résoudre ce problème, sélectionnez n'importe quel autre fichier dans Xcode, puis revenez à votre storyboard. Le glisser-déposer fonctionnera à nouveau. Pas besoin de fermer Xcode ou d'ajouter à nouveau vos contrôleurs.
memmons
9

Comme indiqué dans les commentaires, le glisser-déposer ne fonctionne actuellement pas (Xcode 4.5) après l'ajout d'un contrôleur de navigation. Cependant, le redémarrage de Xcode après l'ajout du contrôleur semble faire fonctionner à nouveau le glisser-déposer.

bryfox
la source
8

XCODE 10.1: Zoomez sur le story-board. Faites simplement glisser les éléments de l'onglet. (Pas de décalage pas d'autre)

Aaban Tariq Murtaza
la source
2
Comment as-tu pensé essayer ça? 😃 Génial! 👏
GarySabo
7

Si vous ouvrez le storyboard en tant que «vue du code source», puis fermez-le et ouvrez-le en tant que vue IB, cela semble corriger le bogue.

Tom DeMille
la source
Cela a fonctionné pour moi (Xcode 8.1), j'ai pu enfin faire glisser pour réorganiser après avoir ouvert le storyboard en vue du code source.
Undrea
7

Pour ajouter à la méthode de glisser-déposer fournie par tout le monde. J'ai posté ceci comme réponse afin que je puisse inclure des images. Essayé sur Xcode 7.3

Si vous utilisez personnalisé tab bar item, vous pouvez toujours faire glisser et déposer pour réorganiser même si la Tab Bar Controllerscène affiche une barre grise, l'élément de barre est toujours là. Ceci est particulièrement discret lorsque tous vos articles de bar sont des articles personnalisés

entrez la description de l'image ici la description

Gérald
la source
4

J'utilise XCode 5.1 pour le développement d'iOS 7.1 et j'ai trouvé que l'approche suivante fonctionne pour réorganiser les onglets dans un contrôleur de barre d'onglets.

Pour réorganiser les onglets dans un contrôleur de barre d'onglets, supprimez les segues du contrôleur de barre d'onglets vers vos contrôleurs de sous-vue. Ensuite, dessinez à nouveau les segments dans l'ordre dans lequel vous voulez les onglets. Pour "redessiner", je veux dire que vous contrôlez le glisser du contrôleur de la barre d'onglets vers le contrôleur de sous-vue et sélectionnez Relation Segue (en bas de la liste) => contrôleurs de vue.

Michael Osofsky
la source
3
vrai. Une autre façon de faire est de modifier le .storyboard en tant que «code source», de trouver les segues (ce sont une balise <segue>) et de réorganiser leur ordre.
voghDev
3

Vous pouvez vous assurer que l'option Tab Controller Dock dans votre storyboard principal est définie sur "First Responder", cela a résolu le problème pour moi!


la source
J'ai essayé plusieurs de ces idées, car j'ai maintenant ce problème, quel que soit le projet que j'évoque maintenant (nouveau ou ancien). Je n'arrive pas à comprendre ce que KayKay veut dire par "l'option Tab Controller Dock". Quelqu'un a des idées?
LaurelS du
3

J'ai eu le même problème après avoir ajouté un contrôleur de navigation.

Correction: fermez le storyboard (Ctrl + Cmd + W) et faites un dossier de construction propre (Option + Cmd + Shift + K) et un nettoyage régulier (Cmd + Shift + K). Rouvrez le storyboard et vous pourrez à nouveau faire glisser les éléments.

Hiver
la source
1

La même chose est dans xCode 4.6. Au départ, je suivais un tutoriel sur le début des storyboards sous iOS Au moment de basculer l'élément sur TabBarController, je ne pouvais pas changer l'ordre. J'ai essayé de le sauver - n'a pas fonctionné; cependant, une fois que j'ai fermé le XCode et ouvert à nouveau - il a fonctionné.

Srdjan
la source
1

Contrôle + faites glisser l'élément dans TabBarController dans le storyboard et réorganisez-le à la position souhaitée.

Sreedeepkesav MS
la source
je pense que c'est Option + glisser
GGirotto
0

Je suivais également le didacticiel raywenderlich pour les storyboards et je me suis rendu compte qu'après avoir ajouté le contrôleur d'onglets, je ne pouvais pas réorganiser les onglets en le faisant glisser. Eh bien, apparemment, c'est juste un bogue dans xcode. Alors quittez simplement xcode, redémarrez-le et cette fois, vous pourrez faire glisser les onglets.

Rachna Anil
la source
0

Pour moi, le glissement ne fonctionnait pas non plus dans XCode 7.3.1. Le redémarrage de XCode n'a pas aidé. Et aucune des solutions mentionnées ci-dessus n'a fonctionné pour moi.

Ce qui m'a aidé: j'ai supprimé la relation avec le deuxième élément et ctrl-glissé de cet élément vers le contrôleur de la barre d'onglets et créé une autre relation. C'était automatiquement à la deuxième place maintenant.

Nina
la source
0

Supprimez toutes les séquences de contrôleurs de vue avec la barre d'onglets. Vous avez besoin d'abord de viewcontroller, puis d'un autre viewcontroller se connecter avec la barre d'onglets.

Aucun xcode de redémarrage et aucun fichier de code source clair en modification requis.

Digvijay Gida
la source