Jak usunąć tekst przycisku Wstecz.
Aktualny przycisk powrotu:
<Wróć
Żądany przycisk powrotu:
<AnythingElse
Żaden z nich nie działał:
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
źródło
źródło
title
zmian zmienia tytuł , a nie tylko przycisk Wstecz.Możesz to zrobić w Konstruktorze interfejsów w następujący sposób:
kliknij element nawigacyjny poprzedniego kontrolera widoku
z poziomu inspektora atrybutów ustaw tekst przycisku Wstecz na dowolne. Otóż to!!
źródło
Tekst przycisku Wstecz jest pobierany z tytułu elementu nawigacyjnego nadrzędnego kontrolera widoku. Zatem cokolwiek ustawisz w tytule elementu nawigacyjnego poprzedniego kontrolera widoku, będzie wyświetlane na tekście przycisku wstecz kontrolera bieżącego widoku. Możesz po prostu wpisać „” jako tytuł elementu nawigacji w metodzie viewWillAppear nadrzędnego kontrolera widoku.
Innym sposobem jest umieszczenie
w bieżącym widoku kontrolera metoda viewWillAppear. Ten spowoduje inny problem, jeśli stos nawigacyjny jest zbyt zagnieżdżony.
źródło
prepareForSegue
, to znaczy. trochę czystsze, ponieważ nie zmieniasz nowego viewController po załadowaniu.Możesz umieścić 3 wiersze kodu w polu, w
ViewController
którym chcesz zmienić tytuł przycisku wstecz.W twoim
override func viewDidLoad() {}
.źródło
Jeśli używasz pliku xib do kontrolera widoku, zrób to w klasie kontrolera widoku.
Wynik będzie:
źródło
Nie wiem, gdzie użyłeś swoich metod, które postawiłeś na swoje pytanie, ale mógłbym uzyskać pożądany wynik, jeśli użyję w mojej
ViewController
klasie (w której chcę zmienić przycisk Wstecz), wviewDidLoad()
funkcji, następujący wiersz:Wynik będzie:
Przed
Po
źródło
navigationController.navigationBar.topItem?.title = ""
zamiast tego, aby uniknąć włożenia tegoviewDidAppear
Przycisk Wstecz należy do poprzedniego kontrolera widoku, a nie do tego, który jest obecnie wyświetlany na ekranie. Aby zmodyfikować przycisk Wstecz, powinieneś go zaktualizować przed wypchnięciem, dodaj viewdidload:
Swift 4:
źródło
Możesz po prostu zmodyfikować NavigationItem w serii ujęć
W przycisku Wstecz dodaj spację i naciśnij klawisz Enter.
źródło
Swift 4 - Skonfiguruj przycisk Wstecz przed naciśnięciem dowolnego kontrolera widoku
źródło
To powinno działać:
Chociaż nie jest to zalecane, ponieważ faktycznie zastępuje przycisk BackButton, a także usuwa strzałkę wstecz i gest machnięcia.
źródło
Szybki 4.2
Jeśli chcesz zmienić tekst elementu przycisku wstecz paska nawigacji, umieść go w
viewDidLoad
kontrolerze PRZED tym, w którym wyświetla się przycisk powrotu, NIE na kontrolerze widoku, w którym widoczny jest przycisk powrotu.Jeśli chcesz zmienić bieżący tekst tytułu paska nawigacji, użyj poniższego kodu (zwróć uwagę, że staje się to domyślnym tekstem tylnym dla widoku NASTĘPNY wypchnięty na kontroler nawigacji, ale ten domyślny tekst wsteczny można zastąpić powyższym kodem)
źródło
Istnieją dwa sposoby.
1. w poprzednimViewContConterer.viewDidLoad ()
2. w currentViewController.viewDidAppear ()
Powód:
backButton
pochodzinavigationBar.backItem.backBarButtonItem
, więc pierwszy sposób jest obvious.In currentViewController.viewDidLoad (), nie możemy uzyskać referencjębackItem
, ponieważ w viewDidAppear (), przy czymnavigationBar
pchnąłnavigationView
na ITSstack
.so możemy wprowadzać zmiany dobackItem
w currentViewController. viewDidAppear ()Aby uzyskać więcej informacji, możesz zobaczyć Dokument: UINavigationBar
źródło
W
viewDidLoad
metodzie prezentacji kontrolera dodaj:źródło
chociaż te odpowiedzi rozwiązują problem, ale może to być przydatne
źródło
Szybki 4
Podczas gdy poprzednie powiedzenie, aby przygotować się do segue, jest poprawne i prawda, że przycisk Wstecz należy do poprzedniego VC, po prostu dodaje trochę więcej niepotrzebnego kodu.
Najlepiej jest ustawić tytuł bieżącego VC w viewDidLoad i automatycznie ustawi prawidłowy tytuł przycisku Wstecz na następnym VC. Ta linia działała dla mnie
źródło
Działa to dla Swift 5 :
Pamiętaj, że będzie to skuteczne dla następnego kontrolera widoku wypychanego, a nie bieżącego na wyświetlaczu, dlatego jest to bardzo mylące!
Sprawdź także scenorys i wybierz element nawigacyjny poprzedniego kontrolera widoku, a następnie wpisz coś w przycisku Wstecz (Inspektor).
źródło
Spróbuj tego ... zadziała ....
Powyższy kod ukryje tekst i wyświetli tylko strzałkę wstecz na pasku nawigacyjnym.
źródło
Ustaw
self.title = ""
wcześniejself.navigationController?.pushViewController(vc, animated: true)
.źródło
Mam nadzieję, że to pomoże!! #swift 3
źródło
Jeśli przesuwasz kontroler widoku ze strony kontrolera widoku strony, nie możesz zaktualizować tytułu przycisku wstecz kontrolera nawigacji. Aby rozwiązać ten problem, utwórz delegata z powrotem do nadrzędnego kontrolera widoku (możesz również przejść do hierarchii kontrolera widoku z powrotem do nadrzędnego).
Ponadto przyciski Wstecz mają limit znaków. Jeśli przekroczysz ten limit znaków, domyślnym ustawieniem systemu będzie „Wstecz”. Nie obetnie cię. Na przykład:
źródło
Szybki 4
W moim przypadku rozwiązaniem było wyczyszczenie elementu nawigacyjnego Master View Controller przed przejściem do Child View Controller. I ustaw go ponownie, jeśli pojawi się ponownie
MasterController
I w ten sposób wciskam UIViewController i usuwam element przycisku paska tylnego w kontrolerze potomnym:
MasterController
źródło
dla Swift 4.2
źródło
GOTCHA: Jeśli masz problem z jedną z wielu gwiazdek, upewnij się, że rejestrujesz swoje,
UITableViewCell
aviewDidLoad()
nie zinit()
źródło
Rozwiązanie sprawdzone i działa w Swift 5
Poniżej przedstawiam kilka rozwiązań dla różnych przypadków:
1. Usuń tekst z przycisku Wstecz
Najlepszym rozwiązaniem do usunięcia tekstu z przycisku Wstecz jest dodanie w viewDidLoad ():
2. Ustaw własny tekst na przycisku Wstecz
Jeśli chcesz ustawić własny tytuł, zrób to, ustawiając tytuł backButton:
3. Pusty przycisk powrotu na wszystkich VC
Jeśli chcesz stworzyć wspólny styl w całej aplikacji - aby mieć tylko strzałkę wstecz bez tekstu, utwórz podstawowy VC dla wszystkich kontrolerów widoku:
Rozwiązanie przedstawione powyżej pozwala dostosować przycisk Wstecz w przyszłości, jeśli chcesz zrobić jakiś wyjątek później, dodając dodatkową zmienną i zastępując ją w konkretnym ViewController, np .:
źródło
szybki 4
istnieje jeden sposób programowej zmiany tekstu w backButton z bieżącego widokuController:
źródło