J'ai un Dans mon mais lorsque l'utilisateur appuyez sur le bouton arrière, je ne veux pas retourner l'écran sur mon écran d'accueil si une condition correspondait. Disons que j'ai un seul bouton appelé score de valeur. Si le nombre de score est 0. Ensuite, je ne veux pas que l'utilisateur redevienne. Si c'est plus de 1 alors si l'utilisateur clique sur le bouton arrière, ils peuvent passer à l'écran d'accueil. P> donc j'ai fait: p> lorsque j'essaye ceci, je Je suis toujours capable de retourner à l'écran d'accueil en cliquant sur le bouton arrière. Comment puis-je rester dans le même écran? P> p> écran d'accueil code> et
écran de détail code>. De
Écran d'accueil code> J'utilise
Push CODE> NAVIGATION ET MOV sur
Écran de détail code>.
Écran de détail code> J'ai Un bouton arrière pour revenir à l'écran d'accueil code>. Parce que j'ai fait
push code> à partir de
écran d'accueil code>. Ce scénario fonctionne bien. P>
3 Réponses :
Vous pouvez essayer d'ajouter un bouton arrière personnalisé dans le contrôleur de navigation.
func setupCustomBackBtn() { let navBackBtn = UIButton(type: .system) navBackBtn.addTarget(self, action: #selector(backBtnAction), for: .touchUpInside) navBackBtn.setImage(UIImage(named: "customBack"), for: .normal) navBackBtn.frame = CGRect(x: -20, y: 0, width: 32, height: 32) let customBackBarBtn = UIBarButtonItem(customView: navBackBtn) navigationItem.leftBarButtonItem = customBackBarBtn } @objc func backBtnAction() { }
Je dois faire avec mon bouton NAV Bar Back. Pas avec mon bouton personnalisé. C'est l'exigence, est-ce possible?
Je ne connais aucune autre méthode mais mon hack fonctionne 100%.
Vous devez créer une fonction d'action du bouton arrière et utiliser votre code: dans cette fonction. p> @IBAction func tapOnBackButton() {
if count == 0 {
self.dismiss(animated: true, completion: nil)
}
}
Vous devez ajouter l'identifiant à la SEGUE POP
override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool { if let ident = identifier { if ident == "YourIdentifier" { if count > 0 { // Dont move , just stay in same screen return false } else { // Move to back home screen return true } } } return true }
Il n'y a pas assez de code. Basé sur ce que vous avez, cela devrait fonctionner, mais cela ne devrait pas, nous aurions donc besoin d'en voir plus