Como você remove o texto do botão Voltar.
Botão de retorno atual:
<Voltar
Botão voltar desejado:
<AnythingElse
Nenhuma delas funcionou:
self.navigationItem.backBarButtonItem?.title = "Back"
self.backItem?.title = ""
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationItem.backBarButtonItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title="Back"
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title
ios
objective-c
swift
Onichan
fonte
fonte
title
alterações no título , não apenas no botão Voltar.Você pode fazer isso no construtor de interface da seguinte maneira:
clique no item de navegação do controlador de exibição anterior
no inspetor de atributos, defina o texto do botão Voltar para o que quiser. É isso aí!!
fonte
O texto do botão Voltar é obtido do título do item de navegação do controlador de exibição pai. Portanto, o que você definir no título do item de navegação do controlador de exibição anterior será mostrado no texto do botão de volta do controlador de exibição atual. Você pode apenas "" colocar o título do item de navegação no método viewWillAppear do controlador-pai.
Outra maneira é colocar
no método viewWillAppear do controlador de exibição atual. Este causará algum outro problema se a pilha de navegação estiver muito aninhada.
fonte
prepareForSegue
, o que é. um pouco mais limpo, porque você não está alterando o novo viewController após o carregamento.Você pode colocar essas 3 linhas de código no
ViewController
botão que deseja alterar o título do botão Voltar.No seu
override func viewDidLoad() {}
.fonte
Se você estiver usando o arquivo xib para o view controller, faça isso na sua classe do view controller.
O resultado será:
fonte
Eu não sei onde você usou seus métodos que você colocou na sua pergunta, mas eu poderia obter o resultado desejado se eu usasse, na minha
ViewController
classe (na qual desejo alterar o botão voltar), naviewDidLoad()
função, a seguinte linha:O resultado será:
Antes
Depois de
fonte
navigationController.navigationBar.topItem?.title = ""
em vez de evitar colocar isso emviewDidAppear
O botão Voltar pertence ao controlador de exibição anterior, não ao apresentado atualmente na tela. Para modificar o botão Voltar, você deve atualizá-lo antes de pressionar, adicione viewdidload:
Swift 4:
fonte
Você pode apenas modificar o NavigationItem no storyboard
No botão Voltar, adicione um espaço e pressione Enter.
fonte
Swift 4 - Configure o botão Voltar antes de pressionar qualquer controlador de exibição
fonte
Isso deve funcionar:
Embora não seja recomendado, pois na verdade substitui o backButton e também removeu a seta para trás e o gesto de furto.
fonte
Swift 4.2
Se você quiser alterar o texto do item do botão Voltar da barra de navegação, insira-o no
viewDidLoad
controlador ANTES daquele em que o botão Voltar aparece, NÃO no controlador de visualização em que o botão Voltar está visível.Se você deseja alterar o texto do título da barra de navegação atual, use o código abaixo (observe que este se torna o texto de volta padrão da visualização NEXT pressionada no controlador de navegação, mas esse texto de volta padrão pode ser substituído pelo código acima)
fonte
Existem duas maneiras.
1.No previousViewController.viewDidLoad ()
2.No currentViewController.viewDidAppear ()
Razão:
backButton
vemnavigationBar.backItem.backBarButtonItem
, portanto, a primeira maneira é óbvia. No currentViewController.viewDidLoad (), não podemos obter a referência debackItem
, porque em viewDidAppear (), onavigationBar
pressionadonavigationView
éstack
. Assim, podemos fazer alterações nobackItem
no currentViewController. viewDidAppear ()Para mais detalhes, você pode ver o documento: UINavigationBar
fonte
No
viewDidLoad
método do controlador de apresentação, adicione:fonte
embora essas respostas resolvam o problema, mas isso pode ser útil
fonte
Swift 4
Enquanto o ditado anterior para se preparar para segue está correto e é verdade que o botão voltar pertence ao VC anterior, é apenas adicionar um monte de código mais desnecessário.
A melhor coisa a fazer é definir o título do VC atual em viewDidLoad e definirá automaticamente o título do botão voltar corretamente no próximo VC. Essa linha funcionou para mim
fonte
Isso funciona para o Swift 5 :
Observe que será eficaz para o próximo controlador de exibição pressionado, e não o atual no visor, por isso é muito confuso!
Além disso, verifique o storyboard e selecione o item de navegação do controlador de exibição anterior e digite algo no botão Voltar (Inspetor).
fonte
Tente isso ... vai funcionar ....
O código acima oculta o texto e mostra apenas a seta para trás na barra de navegação.
fonte
Defina
self.title = ""
antesself.navigationController?.pushViewController(vc, animated: true)
.fonte
Espero que ajude!! #swift 3
fonte
Se você estiver pressionando um controlador de visualização da página do controlador de visualização de página, não poderá atualizar o título do botão Voltar do controlador de navegação. Para resolver isso, crie um delegado de volta ao seu controlador de exibição pai (você também poderá atravessar a hierarquia do controlador de exibição no pai).
Além disso, os botões Voltar têm um limite de caracteres. Se você exceder esse limite de caracteres, o sistema assumirá o padrão "Voltar". Não será truncado para você. Por exemplo:
fonte
Swift 4
No meu caso, a solução foi limpar o item de navegação do Master View Controller antes de passar para o Child View Controller. E configure-o novamente se for mostrado novamente
MasterController
E é assim que eu empurro um UIViewController e limpo o item do botão da barra traseira no controlador filho:
MasterController
fonte
para Swift 4.2
fonte
GOTCHA: Se você está tendo problemas com qualquer um dos muitos-estrelou sugestões, verifique se você está registrando suas
UITableViewCell
s emviewDidLoad()
, não deinit()
fonte
Solução verificada e funciona no Swift 5
Abaixo, coloquei algumas soluções para casos diferentes:
1. Remova o texto do botão Voltar
A melhor solução para remover o texto do botão Voltar é adicionar viewDidLoad ():
2. Defina o próprio texto no botão Voltar
Caso você queira definir seu próprio título, faça-o definindo o título de backButton:
3. Botão traseiro vazio em todos os VC
Se você deseja criar estilo comum em todo o aplicativo - para retornar a seta sem texto, crie um VC base para todos os seus Controladores de exibição:
A solução apresentada acima permite personalizar o botão voltar no futuro, se você quiser fazer alguma exceção posteriormente, adicionando variável adicional e substituindo-a no ViewController específico, f.ex:
fonte
veloz 4
existe uma maneira de alterar o texto em backButton programaticamente a partir do viewController atual:
fonte