Je souhaite masquer le bouton Précédent lors du passage d'une vue à une autre. J'ai lu les questions concernant ce problème et chaque réponse était "use hidesBackButton
". Le problème avec ceci est:
quand je le mets dans viewDidLoad/viewWillAppear, la flèche du bouton Précédent se cache, mais la chaîne "Back" ne le fait pas.
quand je le mets dans viewDidAppear le bouton de retour disparaît mais visible par l'utilisateur
Comment puis-je réparer cela?
Modifier:
Voici comment vous pouvez répliquer ce problème (ou bug?)
Créer une nouvelle application à onglets avec Swift dans Xcode. Dans FirstViewController.Swift, utilisez performSegueWithIdentifier pour accéder au second contrôleur de vue. Dans SecondViewController.Swift, masquez le bouton Précédent de la barre de navigation à l’aide de masquerBackButton et vous verrez quel est le problème.
Essayez d'ajouter ceci:
let backButton = UIBarButtonItem(title: "", style: .Plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backButton
Pour masquer le bouton de retour avec le dernier Swift:
self.navigationItem.setHidesBackButton(true, animated: false)
Vous pouvez utiliser le code ci-dessous pour masquer le bouton Précédent sur UINavigationBar
.
Swift 3 ;
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationItem.hidesBackButton = true
}
cela a fonctionné pour moi
navigationController?.navigationBar.topItem?.hidesBackButton = true
Essayez d'ajouter ceci, cela a fonctionné pour moi
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
}
Cela a fonctionné pour moi:
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
self.tabBarController?.navigationItem.hidesBackButton = true
}
Travaillé pour moi quand je l'ai mis dans init (), au lieu de viewDidLoad. Étrange cependant