Eu tinha um controlador de exibição pai com um título muito longo. Isso resultou no sangramento do texto do botão Voltar no título do controlador de exibição filho.
Depois de tentar várias soluções diferentes, foi isso que acabei fazendo (expandindo a abordagem @ john.k.doe):
Usando o Xcode 7.2, Swift 2
- No Storyboard, adicione a
Navigation Item
à cena Parent View Controller (não o VC filho)
- No
Attributes Inspector
seu novo Navigation Item
, digite um space
caractere no Back Button
campo. Mais sobre isso mais tarde.
- No controlador de exibição Parent , adicione o seguinte código:
snippet:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
switch segue.destinationViewController {
case is ChildViewController:
navigationItem.backBarButtonItem?.title = ""
default:
navigationItem.backBarButtonItem?.title = "Full Parent Title"
}
}
Explicação:
O botão Voltar pertence ao controlador de exibição pai. O Navigation Item
botão fornece um identificador para o botão Voltar, para que você possa definir o título no código ou no Storyboard.
Nota:
Se você deixar o Navigation Item
Back Button
texto como a sequência vazia padrão, o título do botão voltar se tornará "Voltar".
Outras abordagens funcionam, por que usar esta?
Embora seja possível substituir o título do botão de retorno no controlador de exibição infantil, foi um desafio identificá-lo até que ele já tivesse piscado brevemente na tela.
Algumas das abordagens constroem um novo botão de retorno e substituem o existente. Tenho certeza de que funciona e provavelmente é necessário em alguns casos de uso. Mas eu prefiro aproveitar as APIs existentes sempre que possível.
Alterar o title
controlador de exibição pai é a solução mais rápida para algumas situações. No entanto, isso altera o título do pai, portanto você precisa gerenciar o estado. As coisas também ficam confusas Tab Bar Controller
porque as alterações de título causam efeitos colaterais nos Tab Bar Item
títulos.