Usuwanie tekstu tytułowego UIBarButtonItem systemu iOS

Chciałem usunąć tekst z przycisku "Wstecz" UIBarButtonItem, pozostawiając tylko Niebieski szewron na pasku nawigacyjnym. Pamiętaj, że rozwijam się dla iOS 7. Próbowałem kilku metod, w tym, ale nie ograniczając się do:

Jest to metoda obrazkowa, której nie lubiłem (obraz wyglądał nie na miejscu):

UIBarButtonItem *barBtnItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"iOS7BackButton"] style:UIBarButtonItemStylePlain target:self action:@selector(goToPrevious:)];
self.navigationItem.leftBarButtonItem = barBtnItem;

Inną metodą, którą wypróbowałem, była ta, która po prostu nie zadziałała (nic nie było wyświetlane):

UIBarButtonItem *barBtn = [[UIBarButtonItem alloc]init];
barBtn.title=@"";
self.navigationItem.leftBarButtonItem=barBtn;

To, co chciałem osiągnąć, to coś w rodzaju przyciski z tyłu znajdują się w aplikacji muzycznej na iOS 7, która zawierała tylko jeden szewron.

Dzięki.
Author: Suragch, 2013-09-29

30 answers

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

Następnie możesz usunąć tytuł pozycji przycisku Wstecz.

Jeśli używasz Storyboard, możesz ustawić atrybuty nawigacyjne Inspektora przycisk Wstecz ze spacją.

 201
Author: andyleehao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-28 19:56:04

Aby ustawić tytuł przycisku wstecz dla kontrolera widoku bez zmiany jego tytułu, użyj:

Objective-C:

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:self.navigationItem.backBarButtonItem.style target:nil action:nil];

Swift:

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

Aby było jasne, odbywa się to na kontrolerze widoku, który można zobaczyć, jeśli naciśniesz przycisk Wstecz. tzn. zamiast widzieć 'init. Wtedy nie dostajesz żadnego z problemów z tytułu nie wyświetla się, gdy patrzysz na widok sam kontroler.

 402
Author: DonnaLea,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-26 16:08:41

Jeśli używasz Storyboardów, możesz przejść do Attributes Inspector z kontrolera ViewController 's Navigation Item (Kliknij na Navigation Bar) i ustawić właściwość Back Button na "" (jeden znak spacji). Spowoduje to ustawienie tytułu przycisku Wstecz na jeden znak spacji, pozostawiając widoczny szewron. Nie ma potrzeby mieszać z kodem.

przykładowy obrazek

Zauważ, że to ustawi Back Button title dla przycisku Wstecz, który będzie oddzielał się od kontrolera widoku od tego, który został naciśnięty na górze, a nie dla Back Button, który będzie wyświetlany wewnątrz tego kontrolera!

 126
Author: Nikita Kukushkin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-27 09:48:44

To mi pasuje do wyświetlania tylko "tylnego" szewronu bez żadnego tekstu:

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

Ustaw tę właściwość w viewDidLoad kontrolera widoku prezentującego pasek nawigacyjny i to zadziała.

Uwaga: testowałem go tylko w iOS 7, który jest w zakresie pytania.

 122
Author: Guto Araujo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-18 13:17:24

Kiedy ustawiasz tytuł przycisku, użyj @ "" zamiast@"".

--EDIT--

Czy coś się zmienia, gdy próbujesz innych strun? Sam z powodzeniem używam poniższego kodu:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:backString style:UIBarButtonItemStyleDone target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];

BackString to zmienna ustawiona na @ ""lub @ "Back", w zależności od tego, czy używam iOS 7, czy niższej wersji.

Należy zauważyć, że ten kod nie znajduje się w kontrolerze strony, dla której chcę dostosować przycisk Wstecz. Jest w kontrolerze przed włączeniem stos nawigacyjny.

 27
Author: Kamaros,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-30 11:37:55

Tutaj wpisz opis obrazka

Czasami dobrze jest widzieć rzeczy w kontekście. Oto minimalny projekt, który ukrywa tekst "wstecz", ale nadal pokazuje strzałkę.

Storyboard

Tutaj wpisz opis obrazka

Od przycisku "Pokaż drugi kontroler widoku" do drugiego kontrolera widoku jest wyświetlany segue.

Dodałem również element nawigacyjny do drugiego kontrolera widoku, aby miał tytuł. Jest to opcjonalne. Nie wpływa na plecy guzik.

Kod

FirstViewController.swift

import UIKit
class FirstViewController: UIViewController {

    @IBAction func showSecondViewControllerButtonTapped(sender: UIButton) {

        // hide the back button text
        navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
    }
}

SecondViewController.swift

import UIKit
class SecondViewController: UIViewController {
    // Nothing at all needed here
}

Alternatywna metoda (tylko IB, bez kodu)

Na storyboardzie wybierz pozycję nawigacyjną dla pierwszego kontrolera widoku (Nie drugiego). Wystarczy wpisać miejsce na tekst przycisku Wstecz.

Tutaj wpisz opis obrazka

 24
Author: Suragch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-01 07:31:15
self.navigationController.navigationBar.topItem.title = @"";
 15
Author: Claudio Castro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-05 22:09:16

[[1]}na iOS7 Apple wprowadziło dwie nowe właściwości do UINavigationBar, "backIndicatorTransitionMaskImage" i "backIndicatorImage".

Po prostu wywołując raz:

[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"your_image"]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"your_image_mask"]];

Renderuje niestandardowy obraz zamiast domyślnego glifu szewronu, dziedzicząc kolor tinty słowa kluczowego.

A za usunięcie tytułu proponuję odpowiedź Kamarosa. Pamiętaj, aby wywołać ten kod na kontrolerze widoku, który wypycha nowy kontroler widoku. usuwanie tekstu tytułowego systemu iOS UIBarButtonItem

 11
Author: DZenBot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:56

Nie odniosłem sukcesu z udzielonymi odpowiedziami, ale znalazłem naprawdę prostą pracę. W swoim storyboardzie możesz kliknąć pozycję nawigacyjną UIViewController i ustawić tekst przycisku Wstecz. Ustawiłem go na pojedynczą przestrzeń i dało mi to zachowanie, którego szukałem.Tutaj wpisz opis obrazka

 10
Author: Grahambo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-25 22:11:56

To działało dla mnie w iOS10. Wywołaj to z viewDidLoad kontrolera widoku.

self.navigationController?.navigationBar.topItem?.title = ""
 10
Author: Ravi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-26 09:10:58

Proste rozwiązanie tego problemu, działające zarówno na iOS7, jak i 6, polega na ustawieniu własnego widoku tytułowego w viewDidLoad:

- (void)viewDidLoad {

    [super viewDidLoad];

    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
    titleLabel.text = self.title;
    titleLabel.backgroundColor = [UIColor clearColor];

    [titleLabel sizeToFit];

    self.navigationItem.titleView = titleLabel;
}

Następnie, w viewWillAppear: możesz bezpiecznie zadzwonić

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

Ponieważ Widok tytułowy jest widokiem niestandardowym, nie zostanie nadpisany podczas powrotu do stosu nawigacji.

 6
Author: Matthes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-06 09:01:39

W zasadzie można to zrobić za pomocą jednej sztuczki:

Override UINavigationBar class and add this line of code:

- (void)layoutSubviews{
    self.backItem.title = @"";
    [super layoutSubviews];
}

Następnie zainicjalizuj swoją UINavigationController tą niestandardową klasą UINavigationBar.. itd. UINavigationController * navController = [[UINavigationController alloc] initWithNavigationBarClass:[CBCNavigationBar class] toolbarClass:nil];

Hope this helps

 6
Author: rordulu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-08 09:15:49

W metodzie prepareForSegue: Twojego pierwszego Viewcontrollera ustawiasz, że views title ma wartość@"", więc gdy następny Widok zostanie wypchnięty, wyświetli poprzedni tytuł Viewcontrollera, który będzie miał wartość@"".

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

Jedynym problemem jest to, że po naciśnięciu przycisku Wstecz poprzedni widok nie będzie miał tytułu, więc możesz dodać go ponownie na viewWillAppear:

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

Nie podoba mi się to rozwiązanie, ale działa i nie znalazłem innego sposobu, aby to zrobić.

 5
Author: Alejandro Figueroa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-23 17:21:31

Udało mi się coś sklecić, używając odpowiedzi DonnaLea. Oto jak rozwiązanie pojawia się w mojej podklasie UIViewController:

var backItemTitle:String?

override func viewDidLoad() {
    super.viewDidLoad()

    //store the original title
    backItemTitle = self.navigationController?.navigationBar.topItem?.title

    //remove the title for the back button
    navigationController?.navigationBar.topItem?.title = ""
}

override func willMoveToParentViewController(parent: UIViewController?) {
    super.willMoveToParentViewController(parent)
    if parent == nil {

        //restore the orignal title
        navigationController?.navigationBar.backItem?.title = backItemTitle
    }
}

Problem z oryginalną odpowiedzią polega na tym, że usuwa tytuł z kontrolera, gdy do niego wrócisz. Próba zresetowania tytułu w programie viewWillDisappear jest zbyt późna w procesie przejścia; powoduje to, że tytuł powraca, zamiast ładnie animować. Jednak willMoveToParentViewController dzieje się szybciej i pozwala na prawidłowe zachowanie.

Zastrzeżenie: testowałem to tylko z normalnym uinavigationcontroller push / pop. W innych sytuacjach może wystąpić dodatkowe nieoczekiwane zachowanie.

 4
Author: BradB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-28 15:58:28

Brak odpowiedzi mi pomógł. Ale sztuczka zrobiła - właśnie wyczyściłem tytuł kontrolera widoku, który nacisnął (gdzie przycisk Wstecz będzie) tuż przed naciśnięciem go.

Więc gdy poprzedni widok nie ma tytułu, na iOS 7 przycisk Wstecz będzie miał tylko strzałkę, bez tekstu.

Na viewWillAppear widoku pchania, umieściłem z powrotem oryginalny tytuł.

 3
Author: Kof,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-16 12:56:46
    NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                [UIColor clearColor],UITextAttributeTextColor,
                                nil];

    [[UIBarButtonItem appearance] setTitleTextAttributes:attributes
                                                forState:UIControlStateNormal];
Miałem ten sam problem i zrobiłem to w ten sposób.

--EDIT --

Jest to rozwiązanie, gdy naprawdę chcesz usunąć tekst tytułowy wszystkich UIBarbuttonItem. Jeśli chcesz usunąć tylko tytuł elementu przycisku paska tylnego, nie ma jednego prostego wygodnego rozwiązania. W moim przypadku, ponieważ mam tylko kilka UIBarButtonItems, które muszą pokazać tekst tytułu, po prostu zmieniłem te konkretne przyciski titleTextAttributes. Jeśli chcesz być bardziej konkretny użyj poniższego kodu, który będzie Zmiana tylko przycisków paska nawigacji:

NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                [UIColor clearColor],UITextAttributeTextColor,
                                nil];

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:attributes
                                                forState:UIControlStateNormal];
 3
Author: andylee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-11 15:34:20

To użycie podklasy navigationController usuwa "Back".

Używam tego, aby usunąć go, na stałe za pośrednictwem aplikacji.

//.h
@interface OPCustomNavigationController : UINavigationController 

@end

//.m
@implementation OPCustomNavigationController

- (void)awakeFromNib
{
    [self backButtonUIOverride:YES];
}

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [self backButtonUIOverride:NO];

    [super pushViewController:viewController animated:animated];
}

- (void)backButtonUIOverride:(BOOL)isRoot
{
    if (!self.viewControllers.count)
        return;

    UIViewController *viewController;

    if (isRoot)
    {
        viewController = self.viewControllers.firstObject;
    }
    else
    {
        int previousIndex = self.viewControllers.count - 1;

        viewController = [self.viewControllers objectAtIndex:previousIndex];
    }

    viewController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@""
                                                                                       style:UIBarButtonItemStylePlain
                                                                                      target:nil
                                                                                      action:nil];
}

@end
 3
Author: 0yeoj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-14 02:03:38
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefaultPrompt];
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(10.0, NSIntegerMin) forBarMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor],
                                                               NSFontAttributeName:[UIFont systemFontOfSize:1]}
                                                    forState:UIControlStateNormal];
 3
Author: Bill Xie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-28 10:07:41

SWIFT 3

navigationController?.navigationBar.topItem?.title = ""
 3
Author: Jiří Zahálka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-26 09:10:44

Ukryj Tytuł paska nawigacyjnego

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] init];
barButton.title = @""; // blank or any other title
self.navigationController.navigationBar.topItem.backBarButtonItem = barButton;
 2
Author: Kirit Vaghela,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-27 07:59:02

Oto co robię, czyli łatwiej jest usunąć tytuł przycisku Wstecz

override func viewDidLoad() {
    super.viewDidLoad()
    navigationController?.navigationBar?.backItem?.title = ""
}
 2
Author: YannickSteph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-19 09:42:03

Możesz również użyć tego:

UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init];
temporaryBarButtonItem.title = @"";
self.navigationItem.backBarButtonItem = temporaryBarButtonItem;

[temporaryBarButtonItem release];

To działa dla mnie

 1
Author: Utkarsh 786,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-15 13:57:35
case : <Back as <

override func viewWillAppear(animated: Bool) {
navigationController!.navigationBar.topItem!.title = ""
    }
 1
Author: A.G,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-18 07:21:01

Idealne rozwiązanie globalnie

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.clearColor()], forState: UIControlState.Normal)
    UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.clearColor()], forState: UIControlState.Highlighted)

    return true
}
 1
Author: PeiweiChen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-31 02:44:32

Tworzę własną klasę dla UINavigationController i stosuję ją do wszystkich kontrolerów nawigacyjnych w mojej aplikacji. Wewnątrz tej niestandardowej klasy UINavigationController ustawiam delegat UINavigationBar na self Po załadowaniu widoku.

- (void)viewDidLoad {
    self.navigationBar.delegate = self;
}

Następnie implementuję metodę delegata:

- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPushItem:(UINavigationItem *)item {

    // This will clear the title of the previous view controller
    // so the back button is always just a back chevron without a title
    if (self.viewControllers.count > 1) {
        UIViewController *previousViewController = [self.viewControllers objectAtIndex:(self.viewControllers.count - 2)];
        previousViewController.title = @"";
    }
    return YES;
}

W ten sposób po prostu przypisuję moją niestandardową klasę do wszystkich kontrolerów nawigacyjnych i czyści tytuł ze wszystkich tylnych przycisków. I tak dla jasności, zawsze ustawiam tytuł dla wszystkich innych kontrolerów widoku w viewWillAppear tak, aby Tytuł jest zawsze aktualizowany tuż przed pojawieniem się widoku (na wypadek, gdyby został usunięty przez takie sztuczki).

 1
Author: nurider,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-19 15:54:42

Jeśli tak jak ja używasz niestandardowego widoku zamiast UINavigationBar i utknąłeś z przyciskiem wstecz, musisz wykonać trochę pracy, która wydaje się trochę cludgey.

[self.navigationController.navigationBar setHidden:NO];
self.navigationController.navigationBar.topItem.title = @"";
[self.navigationController.navigationBar setHidden:YES];

Wygląda na to, że jeśli nie zostanie przedstawiony, to bez względu na to, co spróbuje pokazać tytuł, oznacza to, że jest pokazany, a następnie Ukryty, zanim zostanie narysowany i rozwiązuje problem.

 1
Author: Nicholas Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-12 22:33:04
extension UIViewController{
    func hideBackButton(){
        navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
    }
}
 1
Author: Maor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-27 10:46:45

W iOS 11 możesz użyć następnego kodu, aby ukryć tytuł przycisku Wstecz:

Swift:

UIBarButtonItem.appearance().setTitleTextAttributes([ NSForegroundColorAttributeName : UIColor.clear ], for: .normal)
UIBarButtonItem.appearance().setTitleTextAttributes([ NSForegroundColorAttributeName : UIColor.clear ], for: .highlighted)

Ten kod nie usuwa tytułu z paska nawigacyjnego, ale po prostu sprawia, że jest przezroczysty, aby przycisk Wstecz nadal posiada miejsce na tytuł. Jeśli potrzebujesz więcej miejsca na tytuł kontrolera widoku, musisz użyć innego rozwiązania.

 1
Author: Serhiy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-27 07:45:30

To lepsze rozwiązanie.

Inne rozwiązanie jest niebezpieczne, ponieważ jest hack.

extension UINavigationController {

    func pushViewControllerWithoutBackButtonTitle(_ viewController: UIViewController, animated: Bool = true) {
        viewControllers.last?.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
        pushViewController(viewController, animated: animated)
    }
}
 1
Author: taku_oka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-29 08:57:10

Swift 3.1 Możesz to zrobić implementując metodę delegate w UINavigationController. Ukryje Tytuł tylko przyciskiem wstecz, nadal otrzymamy obraz strzałki w tył i domyślną funkcjonalność.

func navigationController(_ navigationController: UINavigationController, 
  willShow viewController: UIViewController, animated: Bool) {
        let item = UIBarButtonItem(title: " ", style: .plain, target: nil, 
                    action: nil)
        viewController.navigationItem.backBarButtonItem = item
    }
 1
Author: S.M.Moinuddin. Shuvo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-10 16:11:37