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 Item
do dominującej View Controller sceny (nie dziecko VC)
- Na
Attributes Inspector
swoim nowym Navigation Item
wpisz space
znak w Back Button
polu. 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 Item
Daje 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 Button
tekst 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 title
nadrzę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 Controller
nieporządne, ponieważ zmiany tytułów powodują skutki uboczne związane z Tab Bar Item
tytułami.