Mam pasek nawigacji z tytułem. Kiedy dwukrotnie klikam tekst, aby zmienić jego nazwę, faktycznie mówi, że jest to element nawigacyjny, więc może tak być.
Próbuję zmienić tekst za pomocą kodu, na przykład:
declare navigation bar as navagationbar here
button stuff {
navigationbar.text = "title"
}
To oczywiście nie jest mój kod, tylko pokazanie, jak by to działało.
Dlatego za każdym razem, gdy naciskam przycisk, chcę zmienić tytuł.
swift
uinavigationbar
title
Podniesienie
źródło
źródło
ViewController
odnosi się do samej klasy. Trzeba odwołać się do przykładu zViewController
. Z metody w klasie, na przykładviewDidLoad
możesz to zrobić za pomocąself
. Jeśli nie znasz różnicy między klasą a instancją, zdecydowanie zalecamy zapoznanie się z jej treścią. Ten artykuł pomoże.Spróbuj wykonać następujące czynności
viewDidLoad
źródło
Poniższy kod działa dla mnie z Xcode 7:
źródło
Znalazłem to do pracy:
źródło
var customTitle = self.navigationController?.visibleViewController?.navigationItem customTitle?.title = "Some Title"
a także, jeśli spróbujesz utworzyć
Navigation Bar
ręcznie, ten kod ci pomożeźródło
Zwykle najlepszą praktyką jest ustawienie tytułu na
UIViewController
. W ten sposóbUINavigationItem
ustawiana jest również wartość. Zasadniczo jest to lepsze niż programowe przydzielanie i inicjowanieUINavigationBar
niepowiązanego z niczym.Tęsknisz za niektórymi korzyściami i funkcjonalnościami, dla których
UINavigationBar
został zaprojektowany. Oto link do dokumentacji, która może ci pomóc. Omówiono różne właściwości, które można ustawić na rzeczywistym pasku i na paskuUINavigationItem
.Pamiętaj tylko:
UINavigationController
są twoimi przyjaciółmi.źródło
Prawidłowa odpowiedź dla osób używających swift4 byłoby
źródło
Szybki 3
Stworzyłem ujście dla elementu paska tytułu nawigacji, który jest dostarczany z paskiem nawigacji (z przeglądarki obiektów) w serii ujęć. Potem pozwałem poniższy wiersz:
źródło
Jeśli chcesz zmienić tytuł z kontrolera widoku potomnego kontrolera widoku strony, który jest osadzony w kontrolerze nawigacyjnym, wyglądałoby to tak:
źródło
Jeśli masz
NavigationController
osadzony wewnątrzTabBarController
patrz poniżej:Takie problemy można debugować za pomocą skryptów debugujących. Wypróbuj polecenie Dłuta,
pvc
aby wydrukować każdy widoczny / ukryty widok w hierarchii.źródło
W Swift 4:
Szybki 4
Mam nadzieję, że to pomaga, pozdrawiam!
źródło
Wolę używać
self.navigationItem.title = "Your Title Here"
over,self.title = "Your Title Here"
aby podać tytuł na pasku nawigacyjnym, ponieważ pasek kart służy równieżself.title
do zmiany tytułu. Powinieneś raz wypróbować następujący kod.Uwaga: wywołanie cyklu życia super widoku jest konieczne przed wykonaniem jakichkolwiek czynności.
źródło
Swift 5.1
źródło
Swift 5.1
// Ustaw tytuł paska nawigacji programowo i dynamicznie
Uwaga: Najpierw dodaj NavigationControllerItem do Your,
ViewController
a następnie przejrzyj ichViewController.swift
plik i po prostu skopiuj i wklej toviewDidLoad()
.navigationItem.title = "Your Title Here"
źródło