Riorganizzare l'ordine del controller della barra delle schede in StoryBoard


165

Nella mia app per iPhone ho un controller della barra delle schede con 4 relazioni con 4 diversi controller di visualizzazione tabella. C'è un modo per riorganizzare graficamente l'ordine della relazione in StoryBoard? Non riesco a trovare un modo per farlo e sono sicuro che mi mancherà qualcosa!


Risposte:


254

In 4.5 salvare lo storyboard dopo aver aggiunto un controller, passare a un altro file e quindi tornare allo storyboard e il trascinamento della scheda dovrebbe funzionare di nuovo.


45
Tab trascinando! Ok, non sapevo nemmeno che potessimo trascinare le schede. Non molto intuitivo poiché le schede non sono selezionabili ...
Pierre de LESPINAY,

1
Se sei stanco di cercare nell'interfaccia utente Xcode con interruttore a linguetta / chiudere gli incantesimi, guarda la risposta di JannieT. È semplice e veloce.
Sixto Saez,

Non intuitivo ma ha funzionato anche per me in Xcode 7.
zeeple,

Se non vedi elementi da trascinare, potrebbe essere perché non hai ancora impostato un'icona. Ho scoperto che non veniva visualizzato fino a quando non ho impostato le icone!
Brian,

1
bello :) non sapevo nemmeno che potesse essere trascinabile
Amr Angry l'

132

Puoi semplicemente riorganizzare l'ordine trascinando le icone nel controller della barra delle schede


4
Se si utilizzano schede personalizzate, è comunque possibile trascinare e rilasciare per riordinare anche se la Tab Bar Controllerscena mostra una barra grigia, l'elemento della barra è ancora lì. Ciò è particolarmente poco appariscente quando tutti gli elementi della barra sono oggetti personalizzati.
Gerald

Il modo più diretto e conveniente. Funziona in Xcode 7.3.1. Swift 2.2
Mark Barrasso,

Funziona con Xcode 9, sebbene le icone fossero invisibili.
Cesare,


15

Non sono stato in grado di trascinare e rilasciare con XCode 4.6 (con nessuna delle combinazioni menzionate). L'ho risolto aprendo lo storybord in modalità " Codice sorgente ", individuando tabBarController e riorganizzando il tag seque .


Ho un controller della barra delle schede nidificato in un controller della vista divisa e, di conseguenza, le schede del controller della barra delle schede non sono visibili nello storyboard. La modifica del codice sorgente dello storyboard ha funzionato per me. Grazie!
Scott Gardner,

14

So che l'OP sta utilizzando Xcode Interface Builder e sta chiedendo un modo grafico per farlo, ma per gli sviluppatori che lavorano con Xamarin iOS Designer, ecco una soluzione alternativa che uso.

Apri il file .storyboard in un editor di testo o usando Xcode, fai clic con il pulsante destro del mouse sull'elemento storyboard in Project Navigator e seleziona Apri come codice sorgente. Nello storyboard XML individuare il <tabBarController ...>nodo. Quindi riorganizzo l'ordine dei segues nella <connections>sezione:

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

Cerca il destination=valore dell'attributo nell'XML per determinare a quale controller di visualizzazione punta l'elemento segue.


1
Ottima soluzione Avevo un enorme StoryBoard e rimuovere e ricreare i segues avrebbe richiesto del tempo
YYamil

10

Basta trascinare e rilasciare le icone delle schede nella barra delle schede.

vale a dire la barra delle schede principale che appartiene al controller della barra delle schede.

HTH

:: EDIT :: Quindi questo non sembra funzionare ... Ne sono sicuro.

Ad ogni modo, il modo più semplice che ho trovato è rimuovere le schede e aggiungerle nuovamente nell'ordine in cui si desidera che vengano visualizzate.

Spero che questo ti aiuti.


LOL, sono appena andato alla prova e ho sbagliato. Scusate. L'ho fatto prima però. Un secondo ...
Fogmeister,

Sì, penso di ricordare che il trascinamento della selezione ha funzionato anche se non ne sono sicuro! Forse hanno cambiato qualcosa in Xcode ..
BigLex,

L'ho appena provato e ha funzionato bene trascinando le schede in Xcode 4.5
rdelmar,

@rdelmar hai avviato il tuo progetto come un'applicazione della barra delle schede o hai aggiunto un controller di visualizzazione della barra delle schede a un'applicazione a vista singola?
BigLex,

5
Il trascinamento della selezione funziona, ma diventa testardo se hai fatto qualcosa nello storyboard prima di provare a trascinare le schede. Per risolverlo, seleziona qualsiasi altro file in Xcode e poi torna allo storyboard. Trascina selezione funzionerà di nuovo. Non è necessario chiudere Xcode o aggiungere nuovamente i controller.
Memmons

9

Come notato nei commenti, il trascinamento della selezione al momento non funziona (Xcode 4.5) dopo aver aggiunto un controller di navigazione. Tuttavia, riavviare Xcode dopo aver aggiunto il controller sembra far funzionare di nuovo il drag & drop.


8

XCODE 10.1: ingrandisci lo storyboard. Trascina semplicemente gli elementi della scheda. (Nessun turno nessun altro)


2
Come hai pensato di provare questo? 😃 geniale! 👏
GarySabo

7

Se apri lo storyboard come 'vista codice sorgente' e poi lo chiudi e lo apri come vista IB sembra correggere l'errore.


Questo ha funzionato per me (Xcode 8.1), sono stato finalmente in grado di trascinare per riorganizzare dopo aver aperto lo storyboard nella vista del codice sorgente.
Undrea,

7

Per aggiungere il metodo di trascinamento della selezione fornito da tutti. Ho pubblicato questo come risposta in modo da poter includere immagini. Provato su Xcode 7.3

Se stai usando la personalizzazione tab bar item, puoi comunque trascinare e rilasciare per riordinare anche se la Tab Bar Controllerscena mostra una barra grigia, l'elemento della barra è ancora lì. Ciò è particolarmente poco appariscente quando tutti gli elementi della barra sono oggetti personalizzati

inserisci qui la descrizione dell'immagine descrizione


4

Sto usando XCode 5.1 per lo sviluppo di iOS 7.1 e ho scoperto che il seguente approccio funziona per riorganizzare le schede in un controller della barra delle schede.

Per riorganizzare le schede in un controller della barra delle schede, eliminare i follower dal controller della barra delle schede ai controller della vista secondaria. Quindi ridisegna i segues nell'ordine in cui desideri le schede. Per "ridisegnare" intendo controllare il trascinamento dal controller della barra delle schede al controller della vista secondaria e selezionare Segue relazione (in fondo all'elenco) => controller di visualizzazione.


3
vero. Un altro modo per farlo è modificare il .storyboard come "codice sorgente", trovare i segues (sono un tag <segue>) e riorganizzare il loro ordine.
voghDev

3

Puoi assicurarti che l'opzione Dock del controller di scheda nello storyboard principale sia impostata su "First Responder", che mi ha risolto!


Ho provato molte di queste idee, dato che ora sto avendo questo problema, indipendentemente dal progetto che ho ora sollevato (nuovo o vecchio). Non riesco a capire cosa significhi KayKay con "l'opzione Dock del controller Tab". Qualcuno ha qualche idea?
LaurelS

3

Ho avuto lo stesso problema dopo aver aggiunto un controller di navigazione.

Correzione: chiudi lo storyboard (Ctrl + Cmd + W) ed esegui una cartella di creazione pulita (Opzione + Cmd + Maiusc + K) e una pulizia regolare (Cmd + Maiusc + K). Riapri lo storyboard e sarai in grado di trascinare nuovamente gli elementi.


1

La stessa cosa è in xCode 4.6. Inizialmente stavo seguendo il tutorial sugli storyboard iniziali in iOS Al punto di spostare l'elemento su TabBarController, non potevo cambiare l'ordine. Ho provato a salvarlo - non ha funzionato; tuttavia, una volta chiuso l'XCode e riaperto, DID WORK.


1

Control + trascina l'elemento in TabBarController nello storyboard e riorganizza nella posizione desiderata.


penso che sia Opzione + trascina
GGirotto

0

Stavo seguendo il tutorial di raywenderlich anche per gli storyboard e mi sono reso conto che dopo aver aggiunto il controller a schede non sono riuscito a riorganizzare le schede trascinandolo. Beh, apparentemente è solo un bug in xcode. Quindi basta chiudere xcode, riavviarlo e questa volta, sarà possibile trascinare le schede.


0

Per me il trascinamento non ha funzionato neanche in XCode 7.3.1. Il riavvio di XCode non ha aiutato. E nessuna delle soluzioni sopra menzionate ha funzionato per me.

Cosa mi ha aiutato: ho eliminato la relazione con il secondo elemento e trascinato ctrl da tale elemento nel controller della barra delle schede e creato un'altra relazione. Adesso era automaticamente al secondo posto.


0

Rimuovi tutte le sequenze di visualizzatori con barra delle schede. È necessario prima seguire il viewcontroller, quindi un altro viewcontroller si collega con la barra delle schede.

Non è necessario riavviare xcode e nessun file di codice sorgente chiaro nella modifica.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.