web-dev-qa-db-fra.com

Bouton retour personnalisé UINavigationBar sans titre

Comment personnaliser le bouton de navigation arrière dans iOS 7 et versions ultérieures sans titre? (c'est-à-dire avec la flèche uniquement)

self.navigationItem.leftBarButtonItem = self.editButtonItem;

Je me demande simplement s'ils ont un self.backButtonItem;

OU 

quelque chose comme ça?

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
                   initWithBarButtonSystemItem:UIBarButtonSystemItemBACK 
                   target:self action:@selector(back)];
221
Kiddo

C'est en fait assez facile, voici ce que je fais:

Objectif c

// Set this in every view controller so that the back button displays back instead of the root view controller name
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];

Swift 2

self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)

Swift 3

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

Placez cette ligne dans le contrôleur de vue qui appuie sur la pile (le contrôleur de vue précédent). Le bouton précédent du contrôleur de vue récemment affiché affichera ce que vous avez mis pour initWithTitle, qui dans ce cas est une chaîne vide. 

304
Kyle Begeman

J'ai trouvé un moyen facile de créer mon bouton de retour avec la flèche simple iOS.

Supposons que vous ayez un contrôleur de navigation allant à ViewA à partir de ViewB. Dans IB, sélectionnez la barre de navigation de ViewA. Vous devriez voir les options suivantes: Titre, Invite et Bouton Précédent.

Options de la barre de navigation ViewA

ViewA navigate bar options

L'astuce consiste à choisir le titre du bouton de retour du contrôleur d'affichage de votre destin (ViewB) dans les options de previous view controller (View A). Si vous ne remplissez pas l'option "Bouton Précédent", iOS mettra le titre "Retour" automatiquement, avec le titre de previous view controller. Donc, vous devez remplir cette option avec un seul espace.

Remplir l'espace dans l'option "Bouton Précédent"

Fill space in "Back Button" option

Le résultat:

The Result:

195
Tom Calmon

Il suffit d'utiliser une image! 

OBJ-C :

- (void)viewDidLoad {
     [super viewDidLoad];
     UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Icon-Back"]
                                                                                        style:UIBarButtonItemStylePlain
                                                                                       target:self.navigationController
                                                                                       action:@selector(popViewControllerAnimated:)];
     self.navigationItem.leftBarButtonItem = backButton;
}

Swift 4 :

let backBTN = UIBarButtonItem(image: UIImage(named: "Back"), 
                              style: .plain, 
                              target: navigationController, 
                              action: #selector(UINavigationController.popViewController(animated:)))
navigationItem.leftBarButtonItem = backBTN
navigationController?.interactivePopGestureRecognizer?.delegate = self

Icon-Back.png

Icon-Back

[email protected]

Icon-Back@2x

[email protected]

Icon-Back@23x

62
mt81

iOS7 a de nouvelles règles d'interface, il est donc préférable de garder au moins la flèche de retour lorsque vous poussez un UIView . Il est très facile de changer le texte "retour" par programme. Ajoutez simplement ce code avant d'afficher la vue (ou préparez-vous si vous utilisez StoryBoards):

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
      self.navigationItem.backBarButtonItem=[[UIBarButtonItem alloc] initWithTitle:@"NEW TITLE" style:UIBarButtonItemStylePlain target:nil action:nil];
}

Cela modifiera le texte par défaut "Précédent", mais conservera la flèche arrière de style iOS7 . Vous pouvez également changer la couleur de teinte de la flèche arrière avant de pousser la vue:

- (void)viewDidLoad{
     //NavBar background color:
     self.navigationController.navigationBar.barTintColor=[UIColor redColor];
//NavBar tint color for elements:
     self.navigationController.navigationBar.tintColor=[UIColor whiteColor];
}

J'espère que cela vous aide!

28
Anibal Itriago

Pas grand chose à faire. Vous pouvez réaliser la même chose à travers le storyboard lui-même. 

Il suffit d'aller dans le contrôleur de navigation racine et de laisser un espace. Rappelez-vous non pas au contrôleur que vous vouliez le bouton précédent sans titre, mais au contrôleur de navigation racine.

As per the image below. This works for iOS 7 and iOS 8

26
Swaroop S

Tandis que la réponse de Kyle Begeman fait totalement l'affaire, il est assez ennuyant d'avoir ce code dans tous les contrôleurs de vue possibles. Je me suis retrouvé avec une simple catégorie UINavigationItem. Attention, soyez des dragons! Désolé, je veux dire, grésillement:

#import <objc/runtime.h>

@implementation UINavigationItem (ArrowBackButton)

static char kArrowBackButtonKey;

+ (void)load {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        Method m1 = class_getInstanceMethod(self, @selector(backBarButtonItem));
        Method m2 = class_getInstanceMethod(self, @selector(arrowBackButton_backBarButtonItem));
        method_exchangeImplementations(m1, m2);
    });
}

- (UIBarButtonItem *)arrowBackButton_backBarButtonItem {
    UIBarButtonItem *item = [self arrowBackButton_backBarButtonItem];
    if (item) {
        return item;
    }

    item = objc_getAssociatedObject(self, &kArrowBackButtonKey);
    if (!item) {
        item = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:nil action:NULL];
        objc_setAssociatedObject(self, &kArrowBackButtonKey, item, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
    }
    return item;
}

@end
22
Nicky

EDIT: 2014-04-09: Comme j'ai acquis une réputation, je suis désolé, car je n'utilise plus cette astuce. Je recommande la réponse de Kyle. Notez également que la self de self.navigationItem.backBarButtonItem n'est pas le contrôleur de vue, mais que le bouton Précédent est affiché, mais que le contrôleur de vue précédent doit être restauré.  

Si vous n'avez pas besoin de texte de titre pour le contrôleur de vue précédent, il suffit de remplir le titre avec une chaîne vide;

self.navigationItem.title = @"";
[self.navigationController pushViewController:viewController animated:YES];

Cela empêchera d'afficher "en arrière" avec un chevron sur le contrôleur de vue avancée.

ÉDITER: Même si vous utilisez un texte de titre non vierge, la définition du titre du contrôleur de vue précédent dans viewWillAppear: fonctionne, sauf que le titre peut clignoter en clignotant lorsque le contrôleur de vue est sorti. Je pense que "l'application Twitter" semble faire un piratage plus subtil pour éviter le scintillement.

21
hiroshi

Cela fonctionne, mais cela supprimera le titre de l'élément précédent, même si vous y revenez:

self.navigationController.navigationBar.topItem.title = @"";

Il suffit de définir cette propriété sur viewDidLoad du contrôleur de vue poussé.

20
Guto Araujo

Voici comment je le fais et le plus simple, le travail et la manière la plus claire de le faire.

Cela fonctionne si incorporé sur Navigation Controller

Swift 3

Dans viewDidLoad, je l’ajoute au contrôleur de vue pour que le bouton Précédent soit simplement une flèche.

if let topItem = self.navigationController?.navigationBar.topItem {
   topItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}

La différence entre ceci et la réponse de @Kyle Begeman est que vous appelez ceci sur le contrôleur de vue pour lequel vous voulez que le bouton Précédent soit simplement une flèche, pas sur le contrôleur de vue en pile.

9
r_19

Le hack simple de iOS6 fonctionne aussi sur iOS7:

[UIBarButtonItem.appearance setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];

Edit: N'utilisez pas ce hack. Voir le commentaire pour plus de détails.

6
zh.

Vous n'avez pas accès à la navigation de retour comme vous le souhaitez, vous devez créer votre propre bouton de retour comme ci-dessous:

- (void)loadView
{
    [super loadView];
    UIButton *backButton = [[UIButton alloc] initWithFrame: CGRectMake(0, 0, 44.0f, 30.0f)];
    [backButton setImage:[UIImage imageNamed:@"back.png"]  forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(popVC) forControlEvents:UIControlEventTouchUpInside];
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
}

Et bien sûr:

- (void) popVC{
  [self.navigationController popViewControllerAnimated:YES];
}
6
null

Cible: Personnalisation du bouton Précédent de UINavigationBar en icône blanche

Étapes: 1. dans la méthode "didFinishLaunchingWithOptions" d'AppDelete :

UIImage *backBtnIcon = [UIImage imageNamed:@"navBackBtn"];


if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
    [UINavigationBar appearance].tintColor = [UIColor whiteColor];
    [UINavigationBar appearance].backIndicatorImage = backBtnIcon;
    [UINavigationBar appearance].backIndicatorTransitionMaskImage = backBtnIcon;
}else{

    UIImage *backButtonImage = [backBtnIcon resizableImageWithCapInsets:UIEdgeInsetsMake(0, backBtnIcon.size.width - 1, 0, 0)];
    [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage  forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -backButtonImage.size.height*2) forBarMetrics:UIBarMetricsDefault];
}

2.dans la méthode viewDidLoad de la classe super ViewController commune:

 if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
        UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@""
                                                                     style:UIBarButtonItemStylePlain
                                                                    target:nil
                                                                    action:nil];
        [self.navigationItem setBackBarButtonItem:backItem];
    }else{
        //do nothing
    }
6
Jagie

Toutes les réponses ne résolvent pas le problème. Il n'est pas acceptable de définir le titre du bouton de retour dans chaque contrôleur de vue et l'ajout d'un décalage au titre entraîne le décalage suivant du titre du contrôleur de vue vers la droite.

Voici la méthode utilisant la méthode swizzling, il suffit de créer une nouvelle extension pour UINavigationItem

import UIKit

extension UINavigationItem {
    public override class func initialize() {

    struct Static {
        static var token: dispatch_once_t = 0
    }

    // make sure this isn't a subclass
    if self !== UINavigationItem.self {
        return
    }

    dispatch_once(&Static.token) {
        let originalSelector = Selector("backBarButtonItem")
        let swizzledSelector = #selector(UINavigationItem.noTitleBackBarButtonItem)

        let originalMethod = class_getInstanceMethod(self, originalSelector)
        let swizzledMethod = class_getInstanceMethod(self, swizzledSelector)

        let didAddMethod = class_addMethod(self, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod))

        if didAddMethod {
            class_replaceMethod(self, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
        } else {
            method_exchangeImplementations(originalMethod, swizzledMethod)
        }
    }
}

// MARK: - Method Swizzling

struct AssociatedKeys {
    static var ArrowBackButtonKey = "noTitleArrowBackButtonKey"
}

func noTitleBackBarButtonItem() -> UIBarButtonItem? {
    if let item = self.noTitleBackBarButtonItem() {
        return item
    }

    if let item = objc_getAssociatedObject(self, &AssociatedKeys.ArrowBackButtonKey) as? UIBarButtonItem {
        return item
    } else {
        let newItem = UIBarButtonItem(title: " ", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
        objc_setAssociatedObject(self, &AssociatedKeys.ArrowBackButtonKey, newItem as UIBarButtonItem?, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
        return newItem
    }
}
}
3
jakub wolanski

vous pouvez l'utiliser. Cela fonctionne parfaitement pour moi en ajoutant simplement une UIButton en tant que custumview pour la UIBarButtonItem.

Essayez le code ci-dessous

    self.navigationItem.leftBarButtonItem=[self backButton];


- (UIBarButtonItem *)backButton
{
    UIImage *image = [UIImage imageNamed:@"back-btn.png"];
    CGRect buttonFrame = CGRectMake(0, 0, image.size.width, image.size.height);

    UIButton *button = [[UIButton alloc] initWithFrame:buttonFrame];
    [button addTarget:self action:@selector(backButtonPressed) forControlEvents:UIControlEventTouchUpInside];
    [button setImage:image forState:UIControlStateNormal];

    UIBarButtonItem *item= [[UIBarButtonItem alloc] initWithCustomView:button];

    return item;
}
3
 // add left bar button item

try this code:

- (void)viewDidLoad
{ 
    [super viewDidLoad];

   UIImage* image_back = [UIImage imageNamed:@"your_leftarrowImage.png"];
    CGRect backframe = CGRectMake(250, 9, 15,21);
    UIButton *backbutton = [[UIButton alloc] initWithFrame:backframe];
    [backbutton setBackgroundImage:image_back forState:UIControlStateNormal];
    [backbutton addTarget:self action:@selector(Btn_back:)
         forControlEvents:UIControlEventTouchUpInside];
    [backbutton setShowsTouchWhenHighlighted:YES];
    UIBarButtonItem *backbarbutton =[[UIBarButtonItem alloc] initWithCustomView:backbutton];
    self.navigationItem.leftBarButtonItem=backbarbutton;
    [backbutton release];

}
-(IBAction)Btn_back:(id)sender
{
    [self.navigationController popViewControllerAnimated:YES];

}
2
Paresh Hirpara

Vous pouvez sous-classer UINavigationController, se définir en tant que délégué et définir le backBarButtonItem dans la méthode de délégué navigationController:willShowViewController:animated:

@interface Custom_NavigationController : UINavigationController <UINavigationControllerDelegate>

@end

@implementation Custom_NavigationController

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.delegate = self;
}

#pragma mark - UINavigationControllerDelegate

- (void)navigationController:(UINavigationController *)navigationController     willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    viewController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
}

@end
2
Nate Potter

Titre en retrait vide

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@""  style:UIBarButtonItemStyleDone target:self action:@selector(handleBack:)];
[backButton setTintColor:Color_WHITE];
[self.navigationItem setBackBarButtonItem:backButton];

Changer l'image 

 UIImage *backImg = [[UIImage imageNamed:@"ic_back_white"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[UINavigationBar appearance].backIndicatorImage = backImg;
[UINavigationBar appearance].backIndicatorTransitionMaskImage = backImg;
2
warriorg

Créez une UILabel avec le titre souhaité pour votre contrôleur de vue racine et affectez-la à navigationItem.titleView du contrôleur de vue.

Maintenant, définissez le titre sur une chaîne vide et le prochain contrôleur de vue que vous appuyez aura un bouton Précédent sans texte.

self.navigationItem.titleView = titleLabel; //Assuming you've created titleLabel above
self.title = @"";
2
rounak

La seule façon qui a fonctionné pour moi était:

navigationController?.navigationBar.backItem?.title = ""

METTRE À JOUR: 

Lorsque j'ai changé le drapeau d'animation de la division en vrai (c'était faux auparavant), le seul moyen qui a fonctionné pour moi était: 

navigationController?.navigationBar.topItem?.title = ""
1
Siamaster

Si vous avez deux ViewController (FirstVC, SecondVC) intégrés dans le contrôleur de navigation et que vous souhaitez, il n’ya que la flèche de retour dans SecondVC.

Vous pouvez essayer ceciIn ViewDidLoad de FirstVC

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)
}

Ensuite, lorsque vous appuyez sur SecondVC, vous verrez qu’il n’ya que la flèche arrière.

1
Yu-Lin Wang

J'utilise cette solution depuis iOS 5 ou plus sans aucun problème. J'ai créé une fonction utilitaire que j'appelle dans mes contrôleurs de vue. Vous devez le faire soit dans viewDidLoad, soit à tout moment par la suite.

void updateBackButtonTextForViewController(UIViewController *viewController, NSString *text)
{
    if(! viewController.navigationItem.backBarButtonItem)
    {
        viewController.navigationItem.backBarButtonItem =
        [[UIBarButtonItem alloc] initWithTitle:text
                                         style:UIBarButtonItemStylePlain
                                        target:nil action:nil];
    }
    else
    {
        viewController.navigationItem.backBarButtonItem.title = text;
    }
}

Dans certains cas, l'élément de navigation peut déjà exister, dans d'autres cas, il doit être créé. Cela représente ces deux cas sans jouer avec le titre de l'élément de navigation. Il vous permet de supprimer le titre en passant simplement @"".

1
Dima

J'ai appliqué le code suivant dans viewDidLoad et cela fonctionne:

  // this will set the back button title
self.navigationController.navigationBar.topItem.title = @"Test";

 // this line set the back button and default icon color  

//[[self.navigationController.navigationBar.subviews lastObject] setTintColor:[UIColor blackColor]];

this line change the back default icon to your custom icon
[[self.navigationController.navigationBar.subviews lastObject] setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"menuicon"]]];

Juste pour mettre à jour j'utilise Vector Icon

1
Hajra Qamar

Swift 4

Pour ceux qui cherchent à créer des boutons d’arrière personnalisés et à supprimer leur titre, veuillez utiliser le code suivant dans le contrôleur de vue chargé du nouveau:

self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "close")
self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "close")
self.navigationItem?.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)

Pour une utilisation plus universelle, procédez comme suit:

  1. Créez une fonction universelle comme suit:

    func addCustomizedBackBtn(navigationController: UINavigationController?, navigationItem: UINavigationItem?) {
        navigationController?.navigationBar.backIndicatorImage = UIImage(named: "close")
        navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "close")
        navigationItem?.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
    }
    
  2. Ensuite, utilisez-le dans les contrôleurs de vue comme suit:

    addCustomizedBackBtn(navigationController: self.navigationController, navigationItem: self.navigationItem)
    
1
Nino Bouchedid

Vérifiez cette réponse

Comment changer le nom du bouton retour UINavigationController?

définissez title text sur string avec un espace vide comme ci-dessous

title = " "

Ne pas avoir assez de réputation pour ajouter des commentaires :)

1
Leojin

Si vous définissez la couleur de teinte de la barre de navigation, ajoutez une image de bouton Précédent personnalisée sans titre, qui teinte reflétera la couleur de l'image. Veuillez suivre ce lien de documentation Apple.

https://developer.Apple.com/library/content/ documentation/UserExperience/Conceptual/UIKitUICatalog/index.html#//Apple_ref/doc/uid/TP40012857-UIView-SW7

UINavigationItem *navItem = [[UINavigationItem alloc] init];
   navBar.tintColor = self.tintColor;

   UIImage *myImage = [UIImage imageNamed:@"left_arrow.png"];
     myImage = [myImage              imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

     UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithImage:myImage style:UIBarButtonItemStylePlain target:self action:@selector(cancelButtonFunction:)];
     navItem.leftBarButtonItem = leftButton;

    navBar.items = @[ navItem ];
1
Nazish Ali

Vous pouvez placer cette catégorie dans le fichier AppDelegate.m . Pour supprimer texte à partir de tous les boutons de retour par défaut dans UINavigation. Seule la flèche "<" ou définir une image personnalisée si vous avez besoin.

Objectif c:

...

@fin

@implementation UINavigationItem (Extension) 

- (UIBarButtonItem *) backBarButtonItem {

 return [[UIBarButtonItem alloc] initWithTitle: @ "" style: UIBarButtonItemStylePlain cible: nil action: nil]; 
} 
.
0
Aleksandr B.

Vous pouvez modifier le titre en @ "" du ViewController actuel sur viewWillDisappear et lorsqu'il est sur le point de le montrer, rétablissez le titre à ce qu'il était auparavant.

-(void) viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.title = @"Previous Title";
}

-(void) viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    self.title = @"";
}
0
WaleedAmmari

Dans la méthode prepareForSegue: de votre premier ViewController, vous définissez le titre de cette vue sur @ "". Ainsi, lorsque la vue suivante est insérée, le titre précédent de ViewController sera affiché: @ "".

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    self.navigationItem.title = @" ";
}

Le seul problème avec cela est que, lorsque vous appuyez sur le bouton Précédent, votre vue précédente n'a pas de titre. Vous pouvez donc l'ajouter à nouveau à viewWillAppear:

-(void)viewWillAppear:(BOOL)animated{
   self.navigationItem.title = @"First View Title";
}

Je n'aime pas beaucoup cette solution mais cela fonctionne et je n'ai pas trouvé d'autre moyen de le faire.

0
Alejandro Figueroa

Pour ajouter à la réponse de Thomas C ci-dessus, parfois mettre un seul espace ne fonctionne pas et vous devez continuer à ajouter des espaces. 

empty bar button

Vous saurez que vous avez réussi lorsque vous voyez "Elément de bouton de barre -" sous "Elément de navigation". C'est dans la structure du document (Editeur-> Afficher la structure du document). Une fois que vous voyez l'image ci-dessus, vous pouvez supprimer quelques espaces et voir si cela fonctionne toujours.

0
Rog182

Je suis écrit une extension pour rendre cela plus facile: 

extension UIViewController {

    /// Convenience for setting the back button, which will be used on any view controller that this one pushes onto the stack
    @objc var backButtonTitle: String? {
        get {
            return navigationItem.backBarButtonItem?.title
        }
        set {
            if let existingBackBarButtonItem = navigationItem.backBarButtonItem {
                existingBackBarButtonItem.title = newValue
            }
            else {
                let newNavigationItem = UIBarButtonItem(title: newValue, style:.plain, target: nil, action: nil)
                navigationItem.backBarButtonItem = newNavigationItem
            }
        }
    }

}
0
Mark Bridges

Définit le titre de l'élément du bouton comme chaîne vide.

[self.navigationController.navigationBar.backItem setTitle: @ ""];

0
Georgekutty Joy
  1. Ajouter un nouveau UIBarButtonItem à UINavigationItem à gauche
  2. Changer UIBarButtonItem comment vouloir utiliser
  3. Maintenant, cliquez sur UINavigationItem et glissez barBackButtonItem des points de vente vers la gauche. UIBarButtonItem

 enter image description here

0
alicanozkara
- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        // Custom initialization
        self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];

    }
    return self; 
}

Tout comme Kyle Begeman, vous ajoutez le code ci-dessus sur votre contrôleur de vue racine. Tous les contrôleurs de sous-vue seront appliqués. De plus, en ajoutant ceci à la méthode initWithCoder:, vous pouvez appliquer le style pour les contrôleurs de vue racine dans les approches xib, storyboard ou code.

0
Chris So

Je modifie le titre des vues lorsqu'il disparaît

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    title = "My title"
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    title = " "
}
0
oscarr