W widoku mam pasek nawigacji i chcę programowo zmienić tytuł elementu nawigacji.
Jak to się robi?
ios
iphone
view
uinavigationbar
Doug Null
źródło
źródło
Wersja Swift 3:
Jeśli używasz paska nawigacji bez kontrolera nawigacji, możesz spróbować tego:
navigationBar.topItem?.title = "Your Title"
Mam nadzieję na pomoc.
źródło
W widokuDidLoad
self.title = @"Title";
źródło
Z dokumentacji Apple :
Więc jeśli masz kontroler UINavigationController, wszystko, co musisz zrobić, aby ustawić tytuł paska nawigacji (jak wyjaśniono we wszystkich poprzednich odpowiedziach)
self.navigationItem.title = @"title";
Ale jeśli masz samodzielny pasek nawigacyjny, który jest tworzony programowo w obiekcie UIViewController, musisz ustawić początkowy wygląd paska nawigacji, tworząc odpowiednie obiekty UINavigationItem i dodając je do stosu obiektów paska nawigacji, tj.
Przykład kodu Objective-C dla wymienionych kroków:
UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)]; /* Create navigation item object & set the title of navigation bar. */ UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:self.shoppingItem.name]; /* Create left button item. */ UIBarButtonItem* cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onTapCancel:)]; navItem.leftBarButtonItem = cancelBtn; /* Create left button item. */ UIBarButtonItem* doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(onTapDone:)]; navItem.rightBarButtonItem = doneBtn; /* Assign the navigation item to the navigation bar.*/ [navbar setItems:@[navItem]]; /* add navigation bar to the root view.*/ [self.view addSubview:navbar];
W przypadku wersji Swift samodzielnego paska nawigacyjnego sprawdź tę odpowiedź .
źródło
Napisz poniższy kod w
viewDidLoad
lub może lepiej byłby podinitWithNibName:
self.navigationItem.title = @"title";
Dzięki.
źródło
Możesz także użyć 👇🏻
[self.navigationController.navigationBar.topItem setTitle:@"Titlet"];
źródło
Ten kod nie działa dla mnie
self.navigationItem.title = @"Title here";
Ale to zadziałało.
self.title = "Title Name"
źródło
W widoku UIViewControllerDidLoad
self.navigationItem.title = "The title"; //In swift 4
lub
możesz po prostu
self.title = "The title"
da rade
możesz również umieścić powyższą instrukcję w delegacie aplikacji, aby replikować globalnie.
źródło
Użyj go w metodzie ViewDidLoad
Format:
@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.
Przykład:
self.navigationItem.title = @"Title here";
źródło
bardzo ważna uwaga: upewnij się, że wprowadziłeś zmiany, o których mowa powyżej w widoku nadrzędnym metoda viewDidLoad kontrolera lub pasek nawigacji rodziców w scenorysie
źródło
Czasami może się zdarzyć, że aktualizujesz tytuł i nie powoduje to żadnego efektu, może to mieć miejsce, gdy masz niestandardowy widok na,
topItem
dlatego możesz chcieć zaktualizować go w ten sposób:(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"
źródło