it-swarm.com.de

UINavigationBar benutzerdefinierte Schaltfläche ohne Titel

Wie kann ich die Zurück-Zurück-Schaltfläche in iOS 7 und höher ohne Titel anpassen? (d. h. nur mit dem Pfeil)

self.navigationItem.leftBarButtonItem = self.editButtonItem;

Ich frage mich nur, ob sie self.backButtonItem haben.

ODER 

etwas wie das?

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

Es ist eigentlich ziemlich einfach, hier mache ich:

Ziel 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)

Setzen Sie diese Zeile in den View-Controller, der auf den Stack verschoben wird (den vorherigen View-Controller). Der neu gedrückte View-Controller-Zurück-Button zeigt jetzt alles an, was Sie für initWithTitle setzen, in diesem Fall eine leere Zeichenfolge. 

304
Kyle Begeman

Ich habe einen einfachen Weg gefunden, meinen hinteren Knopf mit iOS-Einzelpfeil zu machen.

Nehmen wir an, Sie haben einen Navigationscontroller, der von ViewB zu ViewA wechselt. Wählen Sie in IB die Navigationsleiste von ViewA aus. Sie sollten die folgenden Optionen sehen: Titel, Eingabeaufforderung und Schaltfläche "Zurück".

ViewA-Optionen für die Navigationsleiste

ViewA navigate bar options

Der Trick besteht darin, in den Optionen von previous view controller (View A) den Schaltflächentitel des View-Controllers (ViewB) auszuwählen. Wenn Sie die Option "Zurück" nicht ausfüllen, wird der Titel "Zurück" von iOS automatisch mit dem Titel " previous view controller" eingefügt. Sie müssen diese Option also mit einem Leerzeichen füllen.

Leerzeichen in der Option "Zurück"

Fill space in "Back Button" option

Das Ergebnis:

The Result:

195
Tom Calmon

Verwenden Sie einfach ein Bild! 

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 hat neue Schnittstellenregeln, es ist also besser, den Zurückpfeil beizubehalten, wenn Sie eine UIView-Taste drücken. Fügen Sie einfach diesen Code vor Push the view hinzu (oder bereiten Sie ForSegue vor, wenn Sie StoryBoards verwenden):

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

Dadurch wird der Standardtext "Zurück" geändert, der iOS 7-Pfeil bleibt jedoch hinterlegt. Sie können auch die Tönungsfarbe für den Rückwärtspfeil vor Push the view ändern:

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

Hoffe das hilft dir!

28
Anibal Itriago

Sie müssen nicht viel tun. Sie können dasselbe durch das Storyboard selbst erreichen. 

Gehen Sie einfach zum Root-Navigations-Controller und geben Sie ein Leerzeichen ein. Denken Sie nicht an den Controller, den Sie die Zurück-Schaltfläche ohne Titel haben wollten, sondern an den Root-Navigationscontroller.

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

26
Swaroop S

Während Kyle Begemans Antwort den ganzen Trick vollbringt, ist es ziemlich ärgerlich, diesen Code in jedem View-Controller zu haben. Ich bekam eine einfache UINavigationItem-Kategorie. Hüte dich, hier sei Drachen! Entschuldigung, ich meine, swizzling:

#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: 09.04.2014: Da ich Ansehen erlangt habe, tut es mir leid, dass ich diesen Trick nicht mehr benutze. Ich empfehle Kyles Antwort. Beachten Sie auch, dass die self von self.navigationItem.backBarButtonItem nicht der View-Controller ist, sondern die Zurück-Schaltfläche, aber der vorherige View-Controller, der zurückgesetzt werden soll.  

Wenn Sie für den vorherigen View-Controller keinen Titeltext benötigen, füllen Sie den Titel einfach mit einer leeren Zeichenfolge.

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

Dies verhindert, dass "Chevron" auf dem Push-View-Controller angezeigt wird.

BEARBEITEN: Auch wenn Sie einen nicht leeren Titeltext verwenden, können Sie den Titel des vorherigen View-Controllers in viewWillAppear: Works einstellen, es sei denn, der Titel kann blinken, wenn der View-Controller aufspringt. Ich denke, "The Twitter App" scheint einen subtileren Hack zu machen, um das Flimmern zu vermeiden.

21
hiroshi

Dies funktioniert, aber der Titel des vorherigen Elements wird entfernt, selbst wenn Sie dorthin zurückkehren:

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

Setzen Sie diese Eigenschaft einfach auf viewDidLoad des Push-View-Controllers.

20
Guto Araujo

So mache ich es und die einfachste, funktionierende und klarste Art, es zu tun.

Dies funktioniert, wenn in Navigation Controller eingebettet wird.

Swift 3

In viewDidLoad füge ich dies dem View Controller hinzu. Die Schaltfläche "Zurück" soll nur ein Pfeil sein.

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

Der Unterschied zur Antwort von @Kyle Begeman besteht darin, dass Sie dies auf dem View-Controller aufrufen, bei dem die Schaltfläche "Zurück" nur Pfeil sein soll, und nicht auf dem Push-Stack-View-Controller.

9
r_19

Ein einfacher Hack von iOS6 funktioniert auch auf iOS7:

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

Edit: Benutze diesen Hack nicht. Siehe Kommentar für Details.

6
zh.

Sie haben keinen Zugriff auf die Navigation backButtonItem, so wie Sie es möchten, und Sie müssen eine eigene Schaltfläche "Zurück" wie folgt erstellen:

- (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];
}

Und natürlich:

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

Ziel: Anpassen aller Zurück-Schaltflächen in UINavigationBar an ein weißes Symbol

Schritte: 1. in der Methode "didFinishLaunchingWithOptions" von 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. in der viewDidLoad-Methode der allgemeinen Superklasse ViewController:

 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

Alle Antworten lösen das Problem nicht. Es ist nicht akzeptabel, den Schaltflächentitel in jedem Ansichts-Controller zurückzusetzen. Durch das Hinzufügen des Versatzes zum Titel wird der nächste Titel des View Controller nach rechts verschoben.

Hier ist die Methode, die die Methode swizzling verwendet. Erstellen Sie einfach eine neue Erweiterung für 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

sie können dies verwenden. Dies funktioniert perfekt für mich, indem Sie einfach eine UIButton als custumview für die UIBarButtonItem hinzufügen.

Probieren Sie den folgenden Code aus

    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;
}
 // 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

Sie können UINavigationController als Unterklasse definieren, sich selbst als Delegat festlegen und das backBarButtonItem in der Delegatmethode navigationController:willShowViewController:animated: festlegen.

@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

Titel zurückstellen

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

Bild zurück ändern 

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

Erstellen Sie eine UILabel mit dem gewünschten Titel für Ihren Root-View-Controller und weisen Sie ihn dem navigationItem.titleView des View-Controllers zu.

Setzen Sie nun den Titel auf eine leere Zeichenfolge, und der nächste View-Controller, den Sie drücken, hat eine Schaltfläche ohne Text.

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

Der einzige Weg, der für mich funktionierte, war:

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

AKTUALISIEREN: 

Als ich die Segue-Animationsflagge auf true geändert hatte (vorher war es falsch), funktionierte der einzige Weg für mich: 

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

Wenn Sie über zwei ViewController (FirstVC, SecondVC) verfügen, die in den Navigations-Controller eingebettet sind, und Sie möchten, gibt es in SecondVC nur einen hinteren Pfeil.

Sie können dies versuchenIn FirstVCs ViewDidLoad

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

Wenn Sie dann in SecondVC drücken, sehen Sie, dass es nur einen hinteren Pfeil gibt

1
Yu-Lin Wang

Ich verwende diese Lösung seit iOS 5 oder so ohne Probleme. Ich habe eine Utility-Funktion erstellt, die ich in meinen View-Controllern aufrufe. Sie müssen dies entweder in viewDidLoad oder an einem anderen Punkt tun.

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;
    }
}

In einigen Fällen ist das Navigationselement möglicherweise bereits vorhanden, in anderen Fällen muss es erstellt werden. Dies berücksichtigt beide Fälle, ohne den Titel des Navigationselements zu beeinträchtigen. Sie können den Titel entfernen, indem Sie einfach @"" übergeben.

1
Dima

Ich habe den folgenden Code in viewDidLoad angewendet und es funktioniert:

  // 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"]]];

Zum Aktualisieren verwende ich Vector Icon

1
Hajra Qamar

Swift 4

Für Benutzer, die eigene Rückwand-Schaltflächen erstellen und deren Titel entfernen möchten, verwenden Sie bitte den folgenden Code innerhalb des View-Controllers, der den neuen drückt:

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)

Für eine universellere Verwendung gehen Sie wie folgt vor:

  1. Erstellen Sie eine universelle Funktion wie folgt:

    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. Dann verwenden Sie es in den View-Controllern wie folgt:

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

Überprüfen Sie diese Antwort

Wie ändere ich den Namen der UINavigationController-Schaltfläche?

setzen Sie title text mit einem Leerzeichen wie folgt auf string

title = " "

Du hast nicht genug Ruf, um Kommentare hinzuzufügen :)

1
Leojin

Wenn Sie die Farbtönungsfarbe der Navigationsleiste festlegen, fügen Sie ein benutzerdefiniertes Bild für die hintere Schaltfläche ohne Titel hinzu, dessen Farbton die Bildfarbe widerspiegelt. Bitte folgen Sie diesem Apple-Dokumentationslink.

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

Sie können diese Kategorie in der AppDelegate.m-Datei . Ablegen, um sie zu entfernen text von allen Standard-Zurück-Schaltflächen in UINavigation. Nur der Pfeil "<" oder ein benutzerdefiniertes Bild festlegen, falls erforderlich.

Ziel c:

...

@Ende

@implementation UINavigationItem (Erweiterung) 

- (UIBarButtonItem *) backBarButtonItem {

 return [[UIBarButtonItem alloc] initWithTitle: @ "" Stil: UIBarButtonItemStylePlain Ziel: keine Aktion: keine]]...
0
Aleksandr B.

Sie können den Titel des aktuellen ViewControllers in viewWillDisappear in @ "" ändern. Wenn der Titel wieder angezeigt wird, setzen Sie den Titel auf den vorherigen Wert zurück.

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

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

In der prepareForSegue: -Methode Ihres ersten ViewControllers legen Sie den Titel der Ansicht auf @ "" fest. Wenn die nächste Ansicht gedrückt wird, wird der vorherige ViewController-Titel angezeigt.

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

Das einzige Problem dabei ist, dass Ihre vorherige Ansicht keinen Titel hat, wenn Sie auf die Zurück-Schaltfläche tippen. Sie können ihn also erneut in viewWillAppear hinzufügen:

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

Ich mag diese Lösung nicht sehr, aber sie funktioniert und ich habe keinen anderen Weg gefunden.

0

Um die Antwort von Thomas C oben hinzuzufügen, funktioniert das Platzieren eines einzelnen Leerzeichens manchmal nicht und Sie müssen ständig Leerzeichen hinzufügen. 

empty bar button

Sie wissen, dass Sie erfolgreich waren, wenn Sie unter "Navigationselement" "Bar Button Item -" sehen. Das ist in der Dokumentgliederung (Editor-> Dokumentgliederung anzeigen). Sobald Sie das obige Bild sehen, können Sie einige Leerzeichen löschen und sehen, ob es noch funktioniert.

0
Rog182

Ich habe eine Erweiterung geschrieben, um das zu erleichtern: 

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

Setzen Sie den Titel des Schaltflächenelements als leeren String zurück.

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

0
Georgekutty Joy
  1. Neues UIBarButtonItem zu UINavigationItem nach links hinzufügen
  2. Ändern Sie die UIBarButtonItem-Verwendungsart
  3. Klicken Sie nun auf UINavigationItem und streichen Sie mit barBackButtonItem von den Ausgängen zum linken 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; 
}

Genau wie Kyle Begeman fügen Sie den Code oben in Ihrem Root-View-Controller hinzu. Alle Untersicht-Controller werden angewendet. Durch Hinzufügen dieser Methode in der Methode initWithCoder: können Sie außerdem den Stil für Root-Ansicht-Controller in Xib-, Storyboard- oder codebasierten Ansätzen anwenden.

0
Chris So

Ich ändere den Ansichtstitel, wenn er verschwindet

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

    title = "My title"
}

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

    title = " "
}
0
oscarr