Ich möchte die Zurück-Schaltfläche ausblenden, wenn Sie von einer Ansicht zur anderen wechseln. Ich habe die Fragen zu diesem Problem gelesen und jede Antwort lautete "use hidesBackButton
". Das Problem dabei ist:
wenn ich es in viewDidLoad/viewWillAppear stecke, wird der Pfeil für den Zurück-Button ausgeblendet, der String "Back" jedoch nicht.
wenn ich es in viewDidAppear stecke, verschwindet die Zurück-Schaltfläche, ist aber für den Benutzer sichtbar
Wie kann ich das beheben?
Bearbeiten:
So können Sie dieses Problem (oder einen Fehler) replizieren
Erstellen Sie eine neue Tabbed-Anwendung mit Swift in Xcode. Verwenden Sie in FirstViewController.Swift den Befehl performSegueWithIdentifier, um zum zweiten View-Controller zu navigieren. Verbergen Sie in der SecondViewController.Swift die Zurück-Schaltfläche der Navigationsleiste mit hidesBackButton, und Sie werden sehen, was das Problem ist.
Versuchen Sie Folgendes hinzuzufügen:
let backButton = UIBarButtonItem(title: "", style: .Plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backButton
So blenden Sie den Zurück-Button mit dem neuesten Swift aus:
self.navigationItem.setHidesBackButton(true, animated: false)
Sie können den folgenden Code verwenden, um die Schaltfläche "Zurück" in UINavigationBar
zu verbergen.
Swift 3 ;
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationItem.hidesBackButton = true
}
das hat für mich funktioniert
navigationController?.navigationBar.topItem?.hidesBackButton = true
Versuchen Sie, dies hinzuzufügen, das hat für mich funktioniert
navigationItem.hidesBackButton = true
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.navigationController?.navigationBarHidden = false
var button: UIButton = UIButton()
button.setImage(UIImage(named: "person-icon.jpg"), forState: .Normal)
button.frame = CGRectMake(0, 0, 25, 25)
button.targetForAction("actioncall", withSender: nil)
var rightItem:UIBarButtonItem = UIBarButtonItem()
rightItem.customView = button
self.navigationItem.rightBarButtonItem = rightItem
let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backButton
}
override func viewWillAppear(animated: Bool) {
let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backButton
}
Das hat für mich funktioniert:
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
self.tabBarController?.navigationItem.hidesBackButton = true
}
Arbeitete für mich, wenn ich es in init () setze, anstatt viewDidLoad. Seltsam