Reorganizando a ordem do controlador da barra de guias no StoryBoard

165

No meu aplicativo para iPhone, eu tenho um Controlador de barra de guias com 4 relacionamentos com 4 controladores de exibição de tabela diferentes. Existe uma maneira de reorganizar a ordem do relacionamento no StoryBoard graficamente? Não consigo encontrar uma maneira de fazer isso e tenho certeza de que devo estar perdendo alguma coisa!

BigLex
fonte

Respostas:

254

Em 4.5, salve o storyboard após adicionar um Controlador, alterne para outro arquivo e, em seguida, volte para o Storyboard e o arraste da guia deve funcionar novamente.

abitofcode
fonte
45
Tabulação arrastando! Ok, eu nem sabia que poderíamos arrastar as abas. Não muito intuitiva desde guias não são selecionáveis ...
Pierre de LESPINAY
1
Se você se cansar de cutucar a interface do Xcode com a opção tab / fechar encantamentos, basta olhar para a resposta de JannieT. É rápido e fácil.
Sixto Saez
Intuitiva, mas ele trabalhou para mim, bem no Xcode 7.
zeeple
Se você não vir itens para arrastar, talvez seja porque você ainda não definiu um ícone. Eu descobri que ele não estava aparecendo até eu definir os ícones!
18716 Brian
1
nice :) nem sequer sabia que ele pode ser arrastado
Amr irritado
132

Você pode reorganizar a ordem arrastando e soltando os ícones no controlador da barra de guias

Indy Bains
fonte
4
Se você estiver usando guias personalizadas, ainda poderá arrastar e soltar para reordenar, mesmo que a Tab Bar Controllercena mostre uma barra cinza, o item da barra ainda está lá. Isso é especialmente discreto quando todos os itens de barra são personalizados.
Gerald
Maneira mais direta e conveniente. Funciona no Xcode 7.3.1. Swift 2.2
Mark Barrasso 07/07
Funciona no Xcode 9 - embora os ícones fossem invisíveis.
Cesare
17

SHIFT + DRAG funciona no Xcode 10.0

bonito
fonte
1
Tão simples como isso.
bikram 25/06
15

Não consegui arrastar e soltar com o XCode 4.6 (com qualquer uma das cobinações mencionadas). Eu o resolvi abrindo o storybord no modo " Source Code ", localizando o tabBarController e reorganizando a tag seque .

Nicola
fonte
Eu tenho um controlador de barra de guias aninhado em um controlador de exibição dividida e, como resultado, as guias do controlador de barra de guias não são visíveis no storyboard. A edição do código fonte do storyboard funcionou para mim. Obrigado!
Scott Gardner
14

Sei que o OP está usando o Xcode Interface Builder e solicitando uma maneira gráfica de fazer isso, mas para desenvolvedores que trabalham com o Xamarin iOS Designer, aqui está uma solução alternativa que eu uso.

Abra o arquivo .storyboard em um editor de texto ou usando o Xcode, clique com o botão direito do mouse no item do storyboard no Project Navigator e selecione Abrir como código-fonte. No XML do storyboard, localize o <tabBarController ...>nó. Em seguida, reorganizo a ordem dos segues na <connections>seção:

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

Procure o destination=valor do atributo no XML para determinar para qual controlador de exibição o elemento segue está apontando.

Jannie Theunissen
fonte
1
Ótima solução. Eu tinha um StoryBoard imenso e remover e recriar os seguidores levaria algum tempo #
YYamil 19/10/16
10

Basta arrastar e soltar os ícones da guia na barra de guias.

ou seja, a barra de guias principal que pertence ao controlador da barra de guias.

HTH

:: EDIT :: Então isso parece não funcionar ... Tenho certeza que costumava.

De qualquer forma, a maneira mais fácil que encontrei é remover as guias e adicioná-las novamente na ordem em que você deseja que elas sejam exibidas.

Espero que isto ajude.

Fogmeister
fonte
LOL, acabei de testar e eu estava errado. Desculpe. Já fiz isso antes. Um segundo ...
Fogmeister 30/09/12
Sim, acho que me lembro que o recurso de arrastar e soltar funcionou mesmo que eu não tenha certeza disso! Talvez eles mudaram alguma coisa no Xcode ..
BigLex
Eu apenas tentei isso, e funcionou muito bem para apenas arrastar as abas no Xcode 4.5
rdelmar
@rdelmar você iniciou seu projeto como um aplicativo da barra de guias ou adicionou um controlador de visualização da barra de guias a um aplicativo de visualização única?
BigLex 30/09/12
5
Arrastar e soltar funciona, mas fica teimoso se você tiver feito alguma coisa no storyboard antes de tentar arrastar e soltar as guias. Para corrigi-lo, selecione qualquer outro arquivo no Xcode e volte ao seu storyboard. Arrastar e soltar funcionará novamente. Não é necessário fechar o Xcode ou adicionar novamente seus controladores.
memmons
9

Conforme observado nos comentários, atualmente o recurso arrastar e soltar não funciona (Xcode 4.5) após adicionar um controlador de navegação. No entanto, reiniciar o Xcode após adicionar o controlador parece que o recurso de arrastar e soltar funciona novamente.

bryfox
fonte
8

XCODE 10.1: Amplie o storyboard. Simplesmente arraste os itens da guia. (Sem turno nenhum outro)

Aaban Tariq Murtaza
fonte
2
Como você pensou em tentar isso? 😃 Brilhante! Gary
GarySabo
7

Se você abrir o storyboard como 'visualização do código-fonte' e depois fechá-lo e abri-lo como visualização IB, parece corrigir o erro.

Tom DeMille
fonte
Isso funcionou para mim (Xcode 8.1). Consegui finalmente arrastar para reorganizar depois de abrir o storyboard na exibição do código-fonte.
sei o que é isso
7

Para adicionar ao método de arrastar e soltar fornecido por todos. Eu postei isso como uma resposta para poder incluir imagens. Tentei no Xcode 7.3

Se você estiver usando personalizado tab bar item, ainda poderá arrastar e soltar para reordenar, mesmo que a Tab Bar Controllercena mostre uma barra cinza, o item da barra ainda está lá. Isso é especialmente discreto quando todos os itens de barra são itens personalizados

insira a descrição da imagem aqui descrição

Gerald
fonte
4

Estou usando o XCode 5.1 para o desenvolvimento do iOS 7.1 e achei a seguinte abordagem para reorganizar as guias em um Controlador de barras de guias.

Para reorganizar as guias em um Controlador de barras de guias, exclua as etapas do Controlador de barras de guias para os controladores de exibição secundária. Em seguida, redesenhe as sequências na ordem em que deseja as guias. Para "redesenhar", quero dizer que você controla o arrasto do Controlador da barra de guias para o controlador de sub-visualização e selecione Segmento de relacionamento (na parte inferior da lista) => visualizar os controladores.

Michael Osofsky
fonte
3
verdade. Outra maneira de fazer isso é editar o .storyboard como "Código-fonte", encontrar os segues (eles são uma tag <segue>) e reorganizar seu pedido.
usar o seguinte código
3

Você pode ter certeza de que a opção Dock do Controlador de Tabulação no storyboard Principal está definida como "Primeiro Respondente", que resolveu isso para mim!


fonte
Eu tenho experimentado várias dessas idéias, pois agora estou tendo esse problema, independentemente do projeto que eu trago (novo ou antigo). Não consigo entender o que KayKay quer dizer com "a opção Tab Controller Dock". Alguém tem alguma ideia?
louros
3

Eu tive o mesmo problema depois de adicionar um controlador de navegação.

Correção: feche o storyboard (Ctrl + Cmd + W) e faça uma pasta de compilação limpa (Opção + Cmd + Shift + K) e uma limpeza regular (Cmd + Shift + K). Reabra o storyboard e você poderá arrastar os itens novamente.

Inverno
fonte
1

O mesmo ocorre no xCode 4.6. Originalmente, eu estava seguindo o tutorial sobre o início de storyboards no ios No momento de trocar o item no TabBarController, não consegui alterar a ordem. Eu tentei salvá-lo - não funcionou; no entanto, uma vez que fechei o XCode e o abri novamente, funcionou.

Srdjan
fonte
1

Ctrl + arraste o item no TabBarController no storyboard e reorganize-o na posição desejada.

Sreedeepkesav MS
fonte
eu acho que é Option + arrastar
GGirotto
0

Eu estava seguindo o tutorial raywenderlich para storyboards também e percebi que depois de adicionar o controlador de guias, não era possível reorganizar as guias arrastando-o. Bem, aparentemente é apenas um bug no xcode. Então, basta sair do xcode, reiniciá-lo e desta vez, você poderá arrastar as guias.

Rachna Anil
fonte
0

Para mim, arrastar também não funcionou no XCode 7.3.1. Reiniciar o XCode não ajudou. E nenhuma das soluções mencionadas acima funcionou para mim.

O que me ajudou: apaguei o relacionamento para o segundo item e arrastei com a tecla Ctrl desse item para o Tab Bar Controller e criei outro relacionamento. Foi automaticamente em segundo lugar agora.

Nina
fonte
0

Remova todos os controladores de exibição em seqüência com a barra de guias. Você precisa primeiro do viewcontroller, primeiro segue e outro viewcontroller se conecta à tabbar.

Não é necessário reiniciar o xcode e nenhum arquivo de código-fonte claro na alteração.

Digvijay Gida
fonte