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 Inspectorseu novo Navigation Item, digite um spacecaractere no Back Buttoncampo. 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 Itembotã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 Buttontexto 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 titlecontrolador 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 Controllerporque as alterações de título causam efeitos colaterais nos Tab Bar Itemtítulos.