Por padrão, o botão Voltar usa como texto o título de um viewcontroller. Posso alterar o texto no botão Voltar sem alterar o título de um controlador de visualização? Preciso disso porque tenho um controlador de visualização cujo título é muito longo para exibir e, neste caso, gostaria de exibir apenas "Voltar" como legenda para o botão Voltar.
Tentei o seguinte, mas não funcionou:
self.navigationItem.leftBarButtonItem.title = @"Back";
Obrigado.
ios
iphone
cocoa-touch
uinavigationitem
Ilya Suzdalnitski
fonte
fonte
Respostas:
Experimentar
Descobri isso olhando os documentos backBarButtonItem nos documentos da Apple para UINavigationItem .
fonte
A abordagem de Marc W funcionou muito bem, uma vez que descobri em qual controlador aplicá-la: aquele que estava sendo renomeado, não o que estava por cima. Portanto, se esta é a pilha de navegação:
... e você deseja dar um título mais curto para ControllerA no botão traseiro exibido quando ControllerB está no topo , você aplica a alteração de propriedade para ControllerA .
Portanto, está mais no contexto de
self.title
, não como os outros configuradores do botão da barra esquerda / direita.fonte
Você pode fazer isso no storyboard. Encontre o controlador de visualização para o qual deseja voltar (aquele com o título longo), selecione seu Item de Navegação e abra o Inspetor de Atributos (Alt + Cmd + 4), insira o título do Botão Voltar personalizado.
fonte
Obrigado Marco ... isso me ajudou ...
Aqui está o que eu fiz.
Se você estiver usando um tableView para navegar para diferentes visualizações ... coloque o código:
No seu
didSelectRowAtIndexPath
método ... do primeiro Controlador ... Controlador A.Quando você navegar para o Controlador B, o botão terá o título "Voltar".
fonte
O botão Voltar puxa seu texto do título do controlador de visualização pai.
No controlador de visualização pai (o controlador de visualização que aparece quando você toca no botão Voltar), defina seu próprio título como o texto desejado no botão Voltar.
Por exemplo, digamos que temos uma
RootViewController
aula. Quando clicamos em uma célula em sua visualização de tabela, enviamos uma instância deSecondViewController
. Queremos que o botão Voltar daSecondViewController
instância leia "Home".no
viewDidLoad
método de RootViewController.m :no
viewDidLoad
método de SecondViewController.m :Se você quiser que o botão Voltar leia "Voltar", defina o título do controlador de visualização pai como
@"Back"
;fonte
Isso funciona melhor para mim. Experimentar :
fonte
Se você estiver usando o storyboard:
É isso aí, aproveite ...
fonte
E no MonoTouch funciona o seguinte (em ViewDidLoad do controlador pai):
fonte
Isso funcionou para mim.
fonte
Em seu controlador de visualização pai, defina o botão Voltar quando a visualização for carregada:
Observe que não precisamos incluir
autorelease
no final com a versão mais recente do iOS.Espero que isto ajude!
fonte
[self.navigationController.navigationBar.backItem setTitle:@"back"];
Funciona para mim. Você pode substituir "back" por outra coisa.
fonte
Este funcionou para mim, se você não quiser ter um título!
fonte
fonte
Eu finalmente soube por que essas respostas não funcionaram para mim no início. Eu defino o título no storyboard. Quando eu defino o título no código. funciona!
fonte
Minha solução foi definir o título quando o controlador de visualização é empurrado para a pilha de navegação e redefini-lo usando o método delegado antes de fechar vc empurrado:
Então, coloquei a mudança de título na chamada do controlador de visualização quando pressiono o outro controlador de visualização como:
e na função de retorno de chamada delegada (que eu invoco em viewWillDissapear):
fonte
Se você deseja não apenas alterar o texto do botão Voltar e manter a forma original da seta para a esquerda, mas também fazer algo quando o usuário clicar no botão Voltar, recomendo que você dê uma olhada em meu " CustomNavigationController ".
fonte
// Você pode conseguir isso definindo o título no controlador de visualização anterior, conforme mostrado abaixo
fonte
Para alterar o título do botão Voltar, consulte o código abaixo
fonte
Isso funcionou para mim:
fonte