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!


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.


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


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


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 .


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.


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.


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.


8

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


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.


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


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.


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!


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.


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.


1

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


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.


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.