Modifier UINavigationBar retour titre du bouton

dans mon application je veux utiliser le texte' Back ' comme titre de bouton back pour chaque viewcontroller. J'ai lu tellement de billets sur stackoverflow mais je n'ai rien trouvé.

Je ne veux pas mettre leftbarbuttonitem.

quelqu'un Peut m'aider sur cette simple tâche.

Merci,

31
demandé sur rustylepord 2014-04-17 16:58:31

9 réponses

faites ceci dans le contrôleur de vue parent pas dans l'enfant

Swift

navigationItem.backBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: nil, action: nil)

Objectif-C

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
86
répondu rustylepord 2018-03-07 18:43:03
self.navigationController.navigationBar.topItem.title = @"";
32
répondu Alex_Burla 2015-10-07 11:20:25

si vous utilisez storyboard, vous pouvez sélectionner l'élément de navigation dans le contrôleur de vue parent et régler le bouton texte que vous voulez dans ' Bouton Arrière' champ. N'oubliez pas de régler cela dans le parent contrôleur de vue, pas dans l'enfant qui est poussé.

enter image description here

7
répondu P.L. 2017-11-05 02:32:33

Essayez ceci espère qu'il aura du travail

UIBarButtonItem *btn = 
        [[UIBarButtonItem alloc] initWithTitle:@"New Title" 
                                         style:UIBarButtonItemStyleBordered 
                                        target:nil 
                                        action:nil];
[[self navigationItem] setBackBarButtonItem:btn];
5
répondu morroko 2014-04-17 13:01:31

j'ai besoin d'utiliser self.navigationController.navigationBar.backItem.title = @"";, la différence étant que j'utilise backItem au lieu de topItem.

3
répondu Brian 2016-04-28 13:21:39
navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
1
répondu WoShiNiBaBa 2017-04-26 13:40:17

swift 2.0:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.navigationBar.topItem?.title = ""
}

Note: cela ne fonctionne que si le storyboard a une chaîne de pile de navigation.

Autres options/changement de titre:

self.navigationController?.navigationBar.backItem?.title = ""
navigationItem.backBarButtonItem?.title = ""
navigationItem.leftBarButtonItem?.title = ""

Supprimer navigationItem:

navigationItem.setLeftBarButtonItem(nil, animated: true)
1
répondu A.G 2018-07-02 15:54:12

AppDelegate dans le DidFinishLaunchingWithOptions ajoutez ce code:

[[UIBarButtonItem appearance] 
setBackButtonTitlePositionAdjustment:UIOffsetMake(-1000.0, 0.0) 
forBarMetrics:UIBarMetricsDefault];
0
répondu Gaurav Malhotra 2018-07-11 19:02:37

pour supprimer le titre du bouton de retour pour tous les contrôleurs de vue ajouter un nouveau fichier swift et copier cette extension vers lui

import UIKit

extension UIViewController {
    static func swizzle(){


        let orginalSelector = #selector(viewDidLoad)
        let swizzledSelector = #selector(swizzledViewDidLoad)

        let orginalMethod = class_getInstanceMethod(UIViewController.self, orginalSelector)
        let swizzledMethod = class_getInstanceMethod(UIViewController.self, #selector(swizzledViewDidLoad))

        let didAddMethod = class_addMethod(UIViewController.self, orginalSelector, method_getImplementation(swizzledMethod!), method_getTypeEncoding(swizzledMethod!))

        if didAddMethod {
            class_replaceMethod(UIViewController.self, swizzledSelector, method_getImplementation(orginalMethod!), method_getTypeEncoding(orginalMethod!))
        }else{
            method_exchangeImplementations(orginalMethod!, swizzledMethod!)
        }

    }

    @objc func swizzledViewDidLoad(){
        navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
        swizzledViewDidLoad()
    }


}

après cela, dans AppDelegate inside didFinishLaunchingWithOptions, appelez le Swizzle func.

UIViewController.swizzle()

c'func utilise le runtime objective-c pour l'échange de la viewDidLoad méthode à une autre qui supprime le bouton précédent titre et à l'intérieur il rappeler l'original viewDidLoad

-1
répondu Abedalkareem Omreyh 2017-11-20 14:00:05