/ / Ako zmeniť názov tlačidla späť UINavigationController? - ios, uiviewcontroller, uinavigation controller, uinavigationitem

Ako zmeniť názov spätného tlačidla UINavigationController? - ios, uiviewcontroller, uinavigationcontroller, uinavigationitem

mám UIViewController a navigujem z prvého ovládača pohľadu do druhého ovládača pohľadu a chcem zmeniť názov tlačidla zobrazeného na navigationcontroller pre návrat späť ....

SecondViewController *secondController = [[SecondViewController alloc]
initWithNibName:nil
bundle:NULL];
[self.navigationController pushViewController:secondController  animated:YES];

teraz v druhej viewcontroller Chcem zmeniť názov tlačidla v systéme Windows navigationController.

odpovede:

32 pre odpoveď č. 1

V viewWillAppear to napíš

self.navigationItem.title = @"List View";

A do ViewWilldisapper to napíšte

self.navigationItem.title = @"Back";

Funguje to bez storyboardov.


179 pre odpoveď č. 2

Ak to chcete urobiť programovo, môžete to urobiť takto:

Objective-C

UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@"Custom"
style:UIBarButtonItemStyleBordered
target:nil
action:nil];

[self.navigationItem setBackBarButtonItem:backItem];

rýchly

let backItem = UIBarButtonItem(title: "Custom", style: .Bordered, target: nil, action: nil)
navigationItem.backBarButtonItem = backItem

Ak však dávate prednosť použitiu Interface Builder, stačí zvoliť UINavigationItem, pre ktorú chcete nastaviť tlačidlo späť, a prejsť na inšpektora atribútov, aby ste zmenili názov tlačidla späť.

tu zadajte popis obrázku

POZNÁMKA: Je dôležité mať na pamäti, že toto musíte nakonfigurovať na radiči pohľadu, ku ktorému by ste sa vracali po klepnutí na tlačidlo späť, nie na aktuálne viditeľnom radiči pohľadu.


42 pre odpoveď № 3

V rozhraní existuje jednoduchá cestaBuilder alebo Storyboarding. V nadradenom ovládači zobrazenia stačí nastaviť atribút „Tlačidlo Späť“ položky navigácie na ľubovoľný požadovaný titul. Tu je príklad:

Tlačidlo Nastaviť späť Názov nadradeného ovládača pohľadu z ovládača rodiča

Villianova krčma bude mať ako názov tlačidla Späť znak „Späť“, ktorý sme práve nastavili v inšpektore atribútov nadradeného navigačného ovládača (Najlepšie pruhy).


4 pre odpoveď č. 4

V mojom prípade fungovalo iba spustenie kódu na hlavnom vlákne, napríklad takto:

dispatch_async(dispatch_get_main_queue(), ^(void) {

self.navigationController.navigationBar.backItem.title = @"Custom Title";
});

3 pre odpoveď č. 5

Swift 3:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let backItem = UIBarButtonItem()
backItem.title = "Back"
navigationItem.backBarButtonItem = backItem // This will show in the next view controller being pushed
}

Poznámka:Tlačidlo späť patrí predchádzajúcemu ovládaču pohľadu, nie tomu, ktorý je momentálne zobrazený na obrazovke. Ak chcete upraviť tlačidlo späť, mali by ste ho pred stlačením aktualizovať na ovládači pohľadu, ktorý spustil segue:


2 pre odpoveď č. 6

v rýchly Riešenie mi prišlo veľmi jednoduché,

Predpokladajme, že som na ViewControllerA a idem na ViewControllerB. Ak chcem zmeniť názov tlačidla späť zobrazovaného na ViewControllerB, urobím to v ViewControllerA,

self.title = "BackButtonTitle"

To je to.


1 pre odpoveď č. 7

Je veľmi dôležité, aby v pohľade nebol radič „Simulované metriky“ vybraný ako „Odvodené“.

Snažil som sa „Žiadny“ a všetko je v poriadku!


1 pre odpoveď č. 8

Skúste to takto: -

NSArray *viewControllerArr = [self.navigationController viewControllers];
// get index of the previous ViewContoller
long previousViewControllerIndex = [viewControllerArr indexOfObject:self] - 1;
UIViewController *previous;
if (previousViewControllerIndex >= 0) {
previous = [viewControllerArr objectAtIndex:previousViewControllerIndex];
previous.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]
initWithTitle:@"Back"
style:UIBarButtonItemStylePlain
target:self
action:nil];
}

1 pre odpoveď č. 9

Môžete to dosiahnuť pomocou titleView z navigationItem

Odpoveď Swift 3

• Vytvorte jednu príponu pre UINavigationItem ako je uvedené nižšie

extension UINavigationItem {
func customTitle(title: String) {
let titleLabel = UILabel()
titleLabel.text = title
titleLabel.textColor = UIColor.white
titleLabel.textAlignment = .center
titleLabel.sizeToFit()
titleView = titleLabel
}
}

• Vo vašich radičoch viewDidLoad postupujte nasledovne

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
title = "Text For Back Button"
navigationItem.customTitle(title: "Title for your view controller")
}

0 pre odpoveď č. 10

Ak používate Storyboard, existuje jednoduchý spôsob, ako to urobiť (pre mňa to fungovalo dobre).

  • Prejdite na svoj scenár
  • Vyberte, ktorý UIViewController chcete zmeniť text tlačidla späť.
  • Kliknite na UINavigationItem v hornej časti vášho UIViewController. (ten s názvom)
  • Na pravom paneli vyberte inšpektor atribútov (4. ikona).
  • Teraz môžete nastaviť text nadpisu, výzva a tlačidlo Späť.

tu zadajte popis obrázku

zdroj: http://pinkstone.co.uk/how-to-change-the-back-button-text-on-a-uinavigationcontroller-in-your-storyboard/


0 pre odpoveď č. 11

V skutočnosti môžete zmeniť názov tlačidla Späť

self.navigationItem.backBarButtonItem.title = @"NewName";

0 pre odpoveď č. 12

Ak použijete odkazy na Storyboard, ovládač zobrazenia nemusí zobraziť položku navigácie v nástroji Interface Builder.

Ručné pretiahnutie navigačného panela nebude fungovať, musíte pretiahnuť a Navigačná položka

Potom budete môcť nastaviť názov tlačidla Späť. Tu tiež nastavíte názov zobrazenia.

Citujúc Micka MacCalluma:

POZNÁMKA: Je dôležité mať na pamäti, že toto musíte nakonfigurovať na radiči pohľadu, ku ktorému by ste sa vracali po klepnutí na tlačidlo späť, nie na aktuálne viditeľnom radiči pohľadu.


0 pre odpoveď č. 13

Existujú dva spôsoby, ako to dosiahnuť.

Prvý spôsob je podľa programového kódu:

Odpoveď Jakimenka Alekseyho je najjednoduchší spôsob, Toto skutočne funguje (testované na Xcode 8 + iOS 10)

Swift3:

self.navigationItem.backBarButtonItem?.title = "Your customized back title"

Poznámka: Vyššie uvedený kód by ste mali volať v radiči zobrazenia zdroja, nie v radiči zobrazenia cieľa.

Druhým spôsobom je použitie lokalizácie scenára pomocou Main.strings súbor,

"nnnnnnn.title" = "localized string";

Nnnnnnn znamená ID objektu BackBarButtonItem v zdroj radič pohľadu (nie radič pohľadu cieľa!)

Musíte nastaviť vlastnosť „späť“ položky navigačného panela, automaticky sa vytvorí položka BarButtonItem, nájdete jej ID objektu.

Ľutujem, nepodarilo sa mi nahrať snímky obrazovky.


0 pre odpoveď č. 14

Mal som dosť zložitý scenár s mnohými navigačnými ovládačmi a môj zákazník chcel, aby všetky zadné tlačidlá povedali „Späť“

Prešiel som v Interface Builder a vložil som "Späť" do poľa Tlačidlo Späť v každej UINavigationItem.

Nepracoval som pre každú zmenu scény!

Problém bol, že nie každý radič pohľadu v scenári mal UINavigationItem.

Opravil som to pretiahnutím nového UINavigationItem na každý UIViewController, ktorý ho nemal, a nastavením všetko polí tlačidiel Späť na „Späť“

Dávajte pozor na kontroléry, ktorým sa automaticky nedostáva ich vlastná položka UINavigationItem.


0 pre odpoveď č. 15

Swift 4

Vo vašom UIViewController, nastavte toto:

let backButton = UIBarButtonItem()
backButton.title = "[Your title here]"
self.navigationItem.backBarButtonItem = backButton

-1 pre odpoveď № 16

Vyskúšajte nižšie uvedený kód:

[self.navigationItem setValue:@[@"customTitle",@""] forKey:@"abbreviatedBackButtonTitles"];