Ich habe eine Navigationsleiste mit einem Titel. Wenn ich auf den Text doppelklicke, um ihn umzubenennen, heißt es tatsächlich, dass es sich um ein Navigationselement handelt.
Ich versuche, den Text mithilfe von Code zu ändern, z.
declare navigation bar as navagationbar here
button stuff {
navigationbar.text = "title"
}
Das ist offensichtlich nicht mein Code, sondern zeigt nur, wie es funktionieren würde.
Wenn ich also die Taste drücke, soll sich der Titel ändern.
quelle
ViewController
bezieht sich auf die Klasse selbst. Sie müssen auf eine Instanz von verweisenViewController
. Innerhalb einer Methode in Ihrer Klasse, z. B.viewDidLoad
können Sie dies mit verwendenself
. Wenn Sie den Unterschied zwischen einer Klasse und einer Instanz nicht kennen, empfehle ich Ihnen dringend, zu lernen, was es ist. Dieser Artikel wird helfen.Versuchen Sie Folgendes in
viewDidLoad
quelle
Der folgende Code funktioniert für mich mit Xcode 7:
quelle
Ich fand das funktioniert:
quelle
var customTitle = self.navigationController?.visibleViewController?.navigationItem customTitle?.title = "Some Title"
und auch wenn Sie versuchen,
Navigation Bar
manuell zu erstellen , hilft Ihnen dieser Codequelle
Normalerweise ist es die beste Vorgehensweise, den Titel auf dem zu setzen
UIViewController
. Auf diese WeiseUINavigationItem
wird auch das eingestellt. Im Allgemeinen ist dies besser als das programmgesteuerte Zuweisen und Initialisieren von DatenUINavigationBar
, die mit nichts verknüpft sind.Sie verpassen einige der Vorteile und Funktionen, für die das entwickelt
UINavigationBar
wurde. Hier ist ein Link zu der Dokumentation, die Ihnen helfen kann. Es werden die verschiedenen Eigenschaften erläutert, die Sie in der tatsächlichen Leiste und in einem festlegen könnenUINavigationItem
.Denken Sie daran:
UINavigationController
sind deine Freunde.quelle
Die richtige Antwort für Benutzer swift4 wäre
quelle
Swift 3
Ich habe eine Steckdose für das Navigations-Titelleistenelement erstellt, das mit der Navigationsleiste (über den Objektbrowser) im Storyboard geliefert wird. Dann habe ich die folgende Zeile verklagt:
quelle
Wenn Sie den Titel eines untergeordneten Ansichts-Controllers eines in einen Navigations-Controller eingebetteten Seitenansichts-Controllers ändern möchten, sieht dies folgendermaßen aus:
quelle
Wenn Sie eine
NavigationController
eingebettete Innenseite haben,TabBarController
siehe unten:Sie können solche Probleme mit Debugger-Skripten debuggen. Versuchen Sie den
pvc
Befehl von Chisel , um jede sichtbare / verborgene Ansicht in der Hierarchie zu drucken.quelle
In Swift 4:
Swift 4
Ich hoffe es hilft, Grüße!
quelle
Ich bevorzuge die Verwendung von
self.navigationItem.title = "Your Title Here"
overself.title = "Your Title Here"
, um den Titel in der Navigationsleiste bereitzustellen, da die Registerkartenleiste auchself.title
zum Ändern des Titels verwendet wird. Sie sollten den folgenden Code einmal ausprobieren.Hinweis: Das Aufrufen des Super View-Lebenszyklus ist erforderlich, bevor Sie Aufgaben ausführen.
quelle
Swift 5.1
quelle
Swift 5.1
// NavigationBar-Titel programmgesteuert und dynamisch festlegen
Hinweis: Fügen Sie zuerst NavigationControllerItem zu Your hinzu, gehen Sie
ViewController
dann zu derenViewController.swift
Datei und kopieren Sie diese und fügen Sie sie einviewDidLoad()
.navigationItem.title = "Your Title Here"
quelle