Eu tenho um controlador de visualização que é a visualização de detalhes de uma tabela. Ao clicar na linha da tabela, você é direcionado para a visualização de detalhes. A visualização de detalhes está embutida em um controlador de navegação de forma que haja um botão no canto superior esquerdo da barra de navegação que o envia de volta à mesa. Por enquanto, tudo bem.
Agora quero adicionar um botão de edição ao lado direito da barra de navegação para que você possa editar a visualização de detalhes. Meu plano é adicionar outro controlador de visualização modalmente que permite editar os detalhes do item. Coisas padrão.
No entanto, quando tento arrastar um item do botão da barra da lista de objetos para a barra de navegação, ele não funciona. Em vez disso, quando eu solto o botão do mouse, ele deixa o botão da barra no controlador da barra de guias na parte inferior. (Meu esquema de navegação inclui guias diferentes e para cada guia uma tabela, visualização de detalhes etc.)
Qualquer um que já passou por isso antes pode sugerir o que estou fazendo de errado ou algum tipo de solução alternativa para adicionar o item do botão da barra ao lado direito da tela de navegação. Tenho que adicionar no código?
Obrigado por qualquer sugestão.
fonte
Respostas:
Tive o mesmo problema ao usar o Xcode6 e percebi que UINavigationItem é adicionado automaticamente para o primeiro ViewController que você incorpora no NavigationController, mas para os ViewControllers subsequentes, você terá que adicioná-lo manualmente da seguinte maneira:
Agora você terá seus botões de barra presos no topo de sua cena.
Atualizar A solução ainda funciona com o XCode 7, mas eu queria adicionar uma foto mais descritiva. Apenas no caso de alguém não estar realmente familiarizado com os nomes padrão ou técnicos mencionados acima. Observe as setas vermelhas à direita; elas se referem à etapa 1, etapa 2 mencionada acima. Observe também a hierarquia de visualizações no retângulo vermelho esquerdo.
fonte
self.navigationItem.rightBarButtonItem = ...
funcionará. Estou supondo que o UINavigationController no primeiro VC o instancia para todos os VCs subsequentes colocados na pilha. No entanto, arrastando um manualmente para lá, por que você não acaba com 2 UINavigationItems um sobre o outro? O que você arrastou manualmente e o que já está lá do UINavigationController?Truque desagradável:
Então, o conteúdo será editável e você terá um estilo não obsoleto para segue.
fonte
UIBarButtonItem
em um controlador de visualização no Xcode 7.3 .O controlador de visualização do seu storyboard provavelmente está faltando a
Navigation Item
. Você pode arrastar um da biblioteca de objetos e soltá-lo em seu controlador de visualização.Você poderá então arrastar e soltar itens do botão da barra para o lado esquerdo ou direito da barra de navegação.
fonte
eu resolvi. arraste o 'Item de navegação' para a visualização de detalhes. do que você pode arrastar no item do botão da barra.
fonte
A maneira como eu corrigi esse problema foi, em vez de arrastar um UINavigationController para o Storyboard e tentar adicionar UIBarButtonItems a ele, arrastei um UITableViewController e fui para
Editor-> Incorporar-> Controlador de Navegação
O que deu o mesmo resultado de antes, exceto que pude adicionar UIBarButtonItems a ambos os lados da barra de navegação sem problemas.
fonte
É realmente um problema com o xcode. Um truque que funcionou para mim é adicionar o botão da barra em VER ESTRUTURA DO ARQUIVO À ESQUERDA.Instaed adicionar a exibição diretamente. Espero que ajude você. :)
fonte
Eu acho que é um bug. Eu tive o mesmo problema. Resolvi este problema desabilitando as classes de tamanho e depois habilitando.
Você pode desativar e ativar as classes de tamanho no documento do construtor de interface.
fonte
Eu também tive esse problema, fechar e reabrir o projeto funcionou para mim.
fonte
Eu acredito que é uma peculiaridade do XCode. Eu tive o mesmo problema. Tive que redefinir o Xcode e mudar o posicionamento das coisas no storyboard para finalmente fazê-lo funcionar. Está funcionando agora.
fonte
Acho que é um bug do Xcode. No Xcode 8, mude o
segue
storyboard antes do controlador de visualização da barra de guias para todas as suas opções (show detail
,present
...). Então, de volta parashow
. Tente arrastar os itens do botão da barra e modificar o bloco. Funciona para mim!fonte
Você tentou "limpar" seu projeto? Sei que às vezes me ajuda (basta ir em "Produto"> "Limpar"). Ou, como alternativa, exclua a barra de navegação e tente novamente.
Se você acha que é um erro de programação, fique à vontade para repassar seu código. Ficarei feliz em ajudar no que puder. :)
fonte
Você deve redefinir o xCode IDE. Feche o xCode e escreva os códigos abaixo no terminal ... Funcionará.
fonte
O mesmo problema. Eu tinha um Table View Controller dentro de um Navigation Controller e muitos ViewControllers seguindo mais abaixo na cadeia. Um 'Item de navegação' estava sendo criado automaticamente para o controlador de visualização raiz FIRST e eu poderia adicionar um 'Item de botão de barra' a ele sem problemas. Através do Storyboard, arraste e solte. Mas isso é tudo. No Controlador de visualização de tabela a seguir e outros controladores de visualização, mesmo que estivessem dentro do Controlador de navegação inicial (o botão voltar gerado automaticamente apareceu), o storyboard nunca me deixaria adicionar um item de botão de barra.
A solução de Wael Showair não funcionou para mim. Os itens do botão da barra não apareceriam.
Resolvi isso programaticamente no final (Swift 2.0):
Nenhum item de navegação extra ou item de botão de barra necessário.
fonte
Eu também estava enfrentando o mesmo problema. Consegui corrigir esse problema selecionando a opção do controlador de visualização raiz e, em seguida, na matriz simulada, alterei a opção Barra superior para Barra de navegação opaca e fui capaz de adicionar o item no topo da barra de navegação. Esperança esta resposta vai ajudar alguém.
fonte
Tive o mesmo problema no xcode 8. Tive que simplesmente fechar o xcode e reabrir o projeto e, em seguida, fui capaz de adicionar o botão da barra ao controlador raiz sem problemas.
fonte
Para XCode 8
Existem muitas respostas aqui. Tentei alguns deles, mas não consegui. Então eu encontrei minha solução, apenas selecione seu
ViewController
, vá para a seção Attributes Inspector e altere a barra superior para barra de navegação opaca e barra. Você verá a barra de navegação em seu storyboard. Você pode alterar o título ou adicionar algum item. Se não quiser manter opaco, você pode alterar o estilo para inferido .fonte
No Xcode 10, eu apenas mudei o tipo de segue indo para este novo controlador de visualização para 'Push (obsoleto)', adicionei o item de navegação como era permitido depois que fiz essa troca. Se você voltar ao tipo de segue desejado originalmente, o item de navegação permanecerá.
fonte
Em vez de arrastar o "Item do botão da barra" para o "Controlador de navegação", arraste-o para o "Controlador de visualização de detalhes". Conforme você incorpora a visualização de detalhes na "Visualização de navegação", "Item de navegação" é adicionado ao "Controlador de visualização de detalhes". Se você arrastar o "Item do botão da barra" para o lado direito do item de navegação, o item será incluído em "Itens do botão da barra direita"
fonte
como disse Mark Lyons, usei a mesma solução.
fonte
No Xcode 11, você pode arrastar um botão para a barra de navegação para criar seu botão de barra.
fonte