2014-12-09 11 views
47

Im Moment habe ich zwei View-Controller. Mein Problem ist, ich weiß nicht, wie man den Zurück-Knopf nach dem Wechsel in den Second-View-Controller versteckt. Meistens bezieht sich auf Referenzen, die ich in Ziel-C gefunden habe. Wie schreibe ich es in swift?Swift - Wie man zurück Knopf im Navigationselement versteckt?

ausblenden zurück Button-Code in Objective-c

[self.navigationItem setHidesBackButton:YES animated:YES]; 

Antwort

188

Gerade vom UINavigationItem class reference documentation -

self.navigationItem.setHidesBackButton(true, animated:true); 
+20

die snarkiness kostenlos ist. – Greg

+1

Erschreckend hat die Antwort 8 upvotes, so dass mindestens ein paar andere Leute auf der Suche nach der gleichen Sache sind. – Paulw11

+28

Es könnte Sie ängstigen @ Paulw11, aber die einfache Tatsache ist "Swift verstecken zurück Knopf" in Google und kommen hier - wie ich gerade tat - ist * Tonnen * schneller als Pflügen durch die Unmengen von Text in der offiziellen Dokumentation. –

19

In meinem Fall ist es funktionierte nur auf diese Weise:

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 
    self.tabBarController?.navigationItem.hidesBackButton = true 
} 
+0

Das gleiche für mich, aber ich würde gerne verstehen warum. Weiß jemand, was ist der Unterschied zwischen der akzeptierten Antwort und diesem Ansatz? Das einzige, was mir einfällt, ist das Vererbungsmodell gegenüber einer statischen Version der Navigationsleiste. –

+0

Vielen Dank an Sie. Das hat viel Zeit gespart. :) –

+1

@HelmutGranda Wenn Sie bemerken, dass Bruno einen Tab Bar Controller verwendet, ist das der Unterschied. Im Fall der angenommenen Antworten ist der VC wahrscheinlich in einen Navigationscontroller eingebettet. – cloudcal

2

Sie können versuchen, mit dem folgenden Code

override func viewDidAppear(_ animated: Bool) { 
    self.navigationController?.isNavigationBarHidden = true 
} 
-1

können Sie versuchen, diesen Code

self.navigationController?.setNavigationBarHidden(true, animated: false) 

ausblenden oder die Navigationsleiste zeigen. Wenn animiert, wird es Übergang vertikal mit UINavigationControllerHideShowBarDuration

open func setNavigationBarHidden(_ hidden: Bool, animated: Bool) 
2

Dies auch in der UINavigationController Klasse Dokumentation zu finden ist:

navigationItem.hidesBackButton = true 
Verwandte Themen