Stel de titel van de navigatiebalk in die is gemaakt in Interface Builder

Ik heb een modale weergavecontroller waarvan de weergave afkomstig is van een XIB. Ik wil dat het dezelfde look en feel heeft als de rest van mijn op navigatie gebaseerde app, maar het is geen weergave die naar de navigatiestack wordt gepusht, het wordt modaal gepresenteerd. Ik heb een UINavigationBar naar binnen gesleept en er een uitlaatklep van gemaakt, maar deze heeft geen titeleigenschap om in te stellen. Ik heb twee velden die deze modale weergave kunnen weergeven, en ik wil dat de titel anders wordt ingesteld, afhankelijk van welke de modale weergave maakt.


Antwoord 1, autoriteit 100%

UINavigationBar‘s beheren een stapel UINavigationItem‘s net zoals een UINavigationController-beheerder een stapel UIViewController‘s . Om in te stellen wat direct zichtbaar is, moet je pushNavigationItem:animated:of setItems:animated:gebruiken met behulp van het navigationItem van de viewcontroller die je op de balk wilt weergeven.

bijvoorbeeld:

self.navigationItem.title = @"A custom title";
[self.navigationBar pushNavigationItem:self.navigationItem animated:NO];

De bovenstaande code waar je een eigenschap navigationBarhebt die verwijst naar de zelfstandige navigatiebalk.

Als je het niet zelf wilt beheren, kun je doen wat mlapppert voorstelde en je viewcontroller nesten (zonder een stand-alone UINavigationBar) in een UINavigationControlleren presenteer de navigatiecontroller modaal in plaats van je viewcontroller.


Antwoord 2, autoriteit 71%

Ook op deze gemakkelijkere manier gevonden als u al een UINavigationBar in uw IB hebt gedefinieerd. Ervan uitgaande dat self.navigationBar uw IBOutlet is:

self.navigationBar.topItem.title = title;

Antwoord 3, autoriteit 9%

(Met XCode 4.5.2) Een methode gevonden die rechtstreeks werkt in Interface Builder – zonder code in te stellen.

Met het ViewController-object geselecteerd in (IB), is er onder de Identity Inspector een sectie met het label “Door de gebruiker gedefinieerde runtime-kenmerken“.
Ik heb de keyPath “titel” van het type String toegevoegd en deze op de gewenste waarde ingesteld.

Getest en dit werkt wanneer het op een Nav Controller-stack wordt geduwd en wanneer het modaal wordt geopend (uiteraard met een Modal Nav Controller).


Antwoord 4, autoriteit 4%

viewcontroller.h bestand in aanmaak iboutlet van het navigatie-item

    @property (weak, nonatomic) IBOutlet UINavigationItem *navigationBarTitle;

– Noemde het “navigationBarTitle”

in het bestand viewcontroller.m in voeg de code toe in super viewDidLoad

     self.navigationBarTitle.title = @"Favorites";

verbind het storybord in het navigatiebalkitem met navigationBarTitle.


Antwoord 5

in mijn .h-bestand

  • Sleep het onderliggende item van het navigatie-item van het storyboard naar het .h-bestand

  • Heeft het “navigationBarTitle” genoemd

in mijn .m-bestand

  • self.navigationBarTitle.title = @”Some Title” toegevoegd;

Antwoord 6

Dit is de eenvoudigste manier:

[[[self.navigationController navigationBar] topItem] setTitle:@"The Title"];

Antwoord 7

u kunt de bestaande navigatiebalk gebruiken met de volgende code

self.navigationController?.navigationBar.topItem?.title = "Calender"

Antwoord 8

Plaats uw UIViewControllerin een nieuwe UINavigationController-weergavecontrollerstack en presenteer die navigatiecontroller modaal.

Other episodes