Miałem nadrzędny kontroler widoku o naprawdę długim tytule. Spowodowało to krwawienie tekstu przycisku wstecz do tytułu kontrolera widoku potomnego.
Po wypróbowaniu wielu różnych rozwiązań, właśnie to skończyłem (rozwijając podejście @ john.k.doe):
Korzystanie z Xcode 7.2, Swift 2
- W serii ujęć, dodać
Navigation Itemdo dominującej View Controller sceny (nie dziecko VC)

- Na
Attributes Inspectorswoim nowym Navigation Itemwpisz spaceznak w Back Buttonpolu. Więcej na ten temat później.


- W kontrolerze widoku rodzica dodaj następujący kod:
skrawek:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
switch segue.destinationViewController {
case is ChildViewController:
navigationItem.backBarButtonItem?.title = ""
default:
navigationItem.backBarButtonItem?.title = "Full Parent Title"
}
}
Wyjaśnienie:
Rodzaj przycisku Wstecz należy do nadrzędnego kontrolera widoku. Navigation ItemDaje dojście do przycisku tyłu, dzięki czemu można ustawić tytuł w kodzie lub w serii ujęć.
Uwaga:
Jeśli pozostawisz Navigation Item Back Buttontekst jako domyślny pusty ciąg, tytuł przycisku Wstecz zmieni się na „Wstecz”.
Inne podejścia działają, po co korzystać z tego ?:
Chociaż można zastąpić tytuł przycisku Wstecz na kontrolerze widoku potomnego, trudno było go uchwycić, dopóki nie błysnął krótko na ekranie.
Niektóre podejścia konstruują nowy przycisk Wstecz i zastępują istniejący. Jestem pewien, że to działa i prawdopodobnie konieczne w niektórych przypadkach użycia. Ale wolę wykorzystać istniejące interfejsy API, jeśli to możliwe.
Zmiana titlenadrzędnego kontrolera widoku jest najszybszym rozwiązaniem w niektórych sytuacjach. Zmienia to jednak tytuł nadrzędny, więc musisz zarządzać stanem. Sprawy również stają się Tab Bar Controllernieporządne, ponieważ zmiany tytułów powodują skutki uboczne związane z Tab Bar Itemtytułami.