Remplacer bouton de retour dans la pile de navigation tout en gardant l'apparence de défaut de bouton de retour?
Comment remplacer le bouton de retour pour un seul point de vue (pas pour tous les boutons présents dans différents points de vue) de sorte qu'à cliquer sur le bouton de retour, en vue de la racine contrôleur est indiqué.
Vous ne pouvez pas faire exactement ce que vous voulez. Que vous avez à faire quelque chose comme ce que les deux autres réponses à fournir. Si vous souhaitez conserver toutes les caractéristiques de dos, mais ignorer ce qui se passe parfois, préférez nacho4d de réponse. Sinon, préférez Mike Bretz de réponse.
vous pouvez vous référer à cette stackoverflow.com/a/44019989/1556386
vous pouvez vous référer à cette stackoverflow.com/a/44019989/1556386
OriginalL'auteur Pintu | 2011-02-22
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de remplacer le bouton retour et lui associer une action gestionnaire:
Apple lignes Directrices ne pas "autoriser" changer les comportements attendus des éléments de l'INTERFACE utilisateur, par exemple des boutons de retour. Lorsqu'un utilisateur iOS voit le "normal" bouton de retour de style, elle s'attend à ce normale comportement du bouton retour. Si vous souhaitez modifier ce comportement, vous devez mettre en œuvre un "normal" style de bouton.
Salut, sorte de un vieux la réponse, mais j'ai une question: Le bouton créé l'habitude de ressembler à un retour normal du bouton droit(comme une flèche vers la gauche)? Aussi, la modification, il sera seulement de modifier l'actuelle vue contrôleur de droit? Les autres VCs-ci ont des boutons arrière droit? Je vous remercie beaucoup.
comme pour moi, si l'utilisateur repousser, et n'en a pas sauvé ce qui se passe sur l'écran en cours, je veux afficher un popup disant "êtes-vous sûr que vous voulez revenir en arrière sans enregistrer?" im sûr que ce serait acceptable
ne fonctionne pas pour iOS 9
OriginalL'auteur Mike Bretz
Trouvé une solution qui conserve le bouton retour de style ainsi.
Ajoutez la méthode suivante à votre vue-contrôleur.
Maintenant fournir une fonctionnalité que nécessaire dans la méthode suivante:
Tout ce qu'il fait est de couvrir le bouton de retour avec un bouton transparent 😉
Vous devez supprimer les transparentButton de superView au moment de quitter le point de vue du contrôleur, car si non il va continuer ajouté à la Barre de navigation dans d'autres viewControllers
ce n'est pas une bonne solution. C'est un hacky solution.
Pouvez-vous donner une meilleure solution?
Eh bien pour commencer, si vous allez faire ce que vous pourriez au moins assurez-vous que l'image du bouton transparent est correct dans
-viewWillLayoutSubviews
sinon, le bouton de retour peut avoir un grand titre et ce bouton ne sera pas le couvrir. Une meilleure solution est de remplacer complètement le bouton de retour avec une vue personnalisée avec une image et l'étiquette à reproduire le style. Il ya d'innombrables autres de meilleures solutions, celui-ci est intrinsèquement hacky.OriginalL'auteur Sarasranglt
Il est vieux, mais la bonne réponse est:
Au lieu de pousser votre ViewController sur le dessus de tous les autres, vous feriez mieux de remplacer la pile complète avec le rootVC et le nouveau VC seulement.
Pas:
Mais:
Comme ça, sur le dos, il va juste popToRoot parce que c'est la précédente viewController dans la pile
OriginalL'auteur valR
J'ai eu le même problème et j'ai utilisé avec succès la réponse donnée par Sarasranglt. Voici la SWIFT version.
Et la fonction est
OriginalL'auteur Pavle Mijatovic
Une autre approche consiste à adopter UINavigationControllerDelegate Protocole.
Ces méthodes vous permettra de savoir quand un contrôleur apparaît, mais vous devez vérifier que le contrôleur le contrôleur que vous souhaitez.
n'oubliez pas de soi.navigatioNController.delegate = self;
OriginalL'auteur nacho4d
Utiliser ce code pour afficher une coutume bouton de retour, Remarque le
backBarButtonItem
avant de le marquer comme un double de la réponse.Cheers!
OriginalL'auteur atulkhatri