Estou tentando adicionar um botão de atualização à barra superior de um controlador de navegação sem êxito.
Aqui está o cabeçalho:
@interface PropertyViewController : UINavigationController {
}
Aqui está como eu estou tentando adicioná-lo:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain
target:self action:@selector(refreshPropertyList:)];
self.navigationItem.rightBarButtonItem = anotherButton;
}
return self;
}
iphone
ios
uinavigationcontroller
uinavigationbar
Artilheiro
fonte
fonte
self.topViewController.navigationItem.leftBarButtonItem = nextButton;
Tente adicionar o botão ao item de navegação do controlador de exibição que será empurrado para este
PropertyViewController
classe que você criou.Isso é:
Agora, esse botão de informações que foi criado programaticamente será exibido na barra de navegação. A idéia é que o controlador de navegação pegue suas informações de exibição (título, botões, etc.) das
UIViewController
que está prestes a exibir. Na verdade, você não adiciona botões e outros diretamente aoUINavigationController
.fonte
Parece que algumas pessoas (como eu) podem vir aqui procurando como adicionar um botão da barra de navegação no Interface Builder. A resposta abaixo mostra como fazê-lo.
Adicione um controlador de navegação ao seu Storyboard
Selecione seu View Controller e, no menu Xcode, escolha Editor> Incorporar> Navegador .
Como alternativa, você pode adicionar um
UINavigationBar
da Biblioteca de Objetos.Adicionar um item de botão de barra
Arraste a
UIBarButtonItem
da Biblioteca de objetos para a barra de navegação superior.Deve ficar assim:
Defina os atributos
Você pode clicar duas vezes em "Item" para alterar o texto para algo como "Atualizar", mas existe um ícone real para a Atualização que você pode usar. Basta selecionar o Inspetor de atributos para o item
UIBarButtonItem
e, em Sistema, selecione Atualizar .Isso fornecerá o ícone de atualização padrão.
Adicionar uma ação de IB
Arraste a tecla Control
UIBarButtonItem
para o View Controller para adicionar uma@IBAction
.É isso aí.
fonte
Há um botão de sistema padrão para "Atualizar":
fonte
Você pode usar isso:
Objetivo-C
Rápido
fonte
fonte
Para o rápido 2:
fonte
Aqui está a solução no Swift (defina as opções conforme necessário):
fonte
Por que você é subclasse
UINavigationController
? Não há necessidade de subclassificar se tudo o que você precisa fazer é adicionar um botão a ele.Configure uma hierarquia com a
UINavigationController
na parte superior e, em seguida, noviewDidLoad:
método do controlador de visualização raiz : configure o botão e anexe-o ao item de navegação chamandofonte
Podes tentar
fonte
Swift 4:
fonte
fonte
Tente isso. Funciona para mim.
Barra de navegação e também adicionou imagem de fundo ao botão direito.
fonte
fonte
fonte
fonte
Você deve adicionar seu barButtonItem no
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
métodofonte
Basta copiar e colar este código Objective-C.
fonte
Esse problema pode ocorrer se excluirmos o controlador de exibição ou tentarmos adicionar um novo controlador de exibição dentro do construtor de interface (main.storyboard). Para corrigir esse problema, é necessário adicionar "Item de Navegação" dentro do novo controlador de exibição. Às vezes, criamos uma nova tela do controlador de exibição e ela não se conecta ao "Item de navegação" automaticamente.
fonte
Além disso, você pode adicionar vários botões usando
rightBarButtonItems
fonte
@Artilheiro: Se é um projeto baseado em navegação, você pode criar o BaseViewController. Todas as outras visualizações herdarão esse BaseView. No BaseView, você pode definir métodos genéricos para adicionar o botão direito ou alterar o texto do botão esquerdo.
ex:
E agora, em qualquer visualização personalizada, implemente essa visualização base, chame os métodos:
Em algum método, chame o método base como:
fonte