Cześć wszystkim. Nadal jestem całkiem nowy w tworzeniu iPhone'a i mam trochę problemów ze zrozumieniem, jak zmienić tytuł mojego paska nawigacyjnego. W innym pytaniu na tej stronie ktoś zalecił użycie:
viewController.title = @"title text";
ale to nie działa dla mnie ... Czy muszę dodać UINavigationController, aby to osiągnąć? A może po prostu gniazdko z mojej podklasy UIViewController? Jeśli to pomoże, zdefiniowałem pasek nawigacji w IB i próbuję ustawić jego tytuł w mojej podklasie UIViewController. To kolejna z tych prostych rzeczy, która przyprawia mnie o ból głowy. Umieszczanie self.title = @ "tekst tytułu"; w viewDidLoad
i initWithNibName
też nie działał. Czy ktoś wie, co się dzieje i jak to zrobić, prawda?
Dzięki!
źródło
jeśli robisz to wszystko kodem w
viewDidLoad
metodzieUIViewController
to powinieneś tylko dodaćself.title = @"title text";
coś takiego:
- (void)viewDidLoad { [super viewDidLoad]; self.title = @"title"; }
możesz też spróbować
self.navigationItem.title = @"title";
sprawdź także, czy element navigationItem nie ma wartości null i jeśli ustawiłeś niestandardowe tło paska nawigacji, sprawdź, czy tytuł jest ustawiony bez niego.
źródło
Jest jeden problem z używaniem
self.title = @"title";
Jeśli używasz paska nawigacji razem z paskiem kart, powyższa linia zmienia również etykietę elementu paska kart. Aby tego uniknąć, skorzystaj z sugestii @testing
self.navigationItem.title = @"MyTitle";
źródło
Jeśli chcesz zmienić tytuł paska nawigacyjnego (nie tytuł przycisku nawigacyjnego wstecz!), Ten kod będzie działał.
self.navigationController.topViewController.title = @"info";
źródło
Jeśli chcesz zmienić tytuł navBar wewnątrz kontrolera tabBar, zrób to:
-(void)viewDidAppear:(BOOL)animated { self.navigationController.navigationBar.topItem.title = @"myTitle"; }
źródło
W mojej aplikacji nawigacyjnej robię to:
myViewController.navigationItem.title = @"MyTitle";
źródło
Miałem kontrolery nawigacji zintegrowane z TabbarController. To zadziałało
self.navigationItem.title=@"title";
źródło
Domyślnie kontroler nawigacji wyświetla tytuł „elementu głównego”
więc w metodzie viewdidload Twojej delegowanej aplikacji możesz. Przetestowałem to i działa
navController.navigationBar.topItem.title = @"Test";
źródło
UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"]; ... [bar pushNavigationItem:item animated:YES]; [item release];
Ten kod zadziałał.
źródło
Jeśli pracujesz ze scenorysami, możesz kliknąć kontroler, przejść do zakładki właściwości i ustawić tam tekst tytułu.
źródło
Myślę, że potrzebujesz dynamicznego tytułu, dlatego nie umieszczasz go w IB.
I zakładam, że twój obiekt viewController jest tym określonym w NIB?
Być może próbując ustawić go na wartość fikcyjną w IB, a następnie debugować metody, aby zobaczyć, który kontroler ma wartość fikcyjną - zakładając, że pojawia się jako tytuł ...
źródło
Z poziomu TableViewController.m:
źródło
Dla wszystkich twoich jerzyków, to zadziałało idealnie. To przede wszystkim jeden z krótszych sposobów na ustawienie tytułu:
override public func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "presentLineItem" { print("Setting Title") var vc = segue.destinationViewController as! LineItemsTableViewController vc.navigationItem.title = "Line Item" } }
źródło