Gezinme Çubuğunun başlığı programlı olarak nasıl ayarlanır?


85

Bir görünümde Gezinme Çubuğum var ve Gezinme Öğesi başlığını programla değiştirmek istiyorum.

Bu nasıl yapılır?

Yanıtlar:


206

UIViewController cihazınızda

self.navigationItem.title = @"The title";

Evet, toolbarItem'in başlığını değil, yalnızca navigationItem'in başlığını güncellediği için bunu seçerdim.
Prakash Raman

30

Swift 3 Sürümü:

Gezinme denetleyicisi olmayan bir gezinme çubuğu kullanıyorsanız, şunu deneyebilirsiniz:

navigationBar.topItem?.title = "Your Title"

Yardım için umut.


11

ViewDidLoad

  self.title = @"Title";

3
Benim iki sentim :) vewcontroller bir araç çubuğu denetleyicisinin parçası olsa bile bu çalışır. Ardından araç çubuğunun başlığı da güncellenir.
Prakash Raman

7

Gönderen Elma Belgeler :

Gezinme çubuğunu kullanmanın en yaygın yolu, gezinme denetleyicisidir. Ayrıca, uygulamanızda bağımsız bir nesne olarak bir gezinme çubuğunu da kullanabilirsiniz.

Dolayısıyla, bir UINavigationController cihazınız varsa, navigasyon çubuğunun başlığını ayarlamak için yapmanız gereken her şey (önceki tüm cevaplarda açıklandığı gibi)

self.navigationItem.title = @"title";

Ancak, UIViewController nesnesinin içinde programlı olarak oluşturulan bağımsız bir gezinme çubuğunuz varsa, uygun UINavigationItem nesnelerini oluşturarak ve bunları gezinme çubuğu nesne yığınına ekleyerek gezinme çubuğunun ilk görünümünü ayarlamanız gerekir.

  1. Gezinti çubuğunun bir örneğini oluşturun (UINavigationBar)
  2. Bir UINavigationBar nesnesinde görüntülenecek düğmeleri ve görünümleri yöneten gezinti çubuğu öğesinin (UINavigationItem) bir örneğini oluşturun. Başlığı bu adımda ayarladığınızı unutmayın.
  3. (İsteğe Bağlı Adım) Gezinme çubuğu öğesine sağ / sol düğmeleri (UIBarButtonItem örnekleri) ekleyin.

Belirtilen adımlar için Objective-C Kodu örneği:

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];

Bağımsız gezinme çubuğunun Swift sürümü için bu yanıta bir göz atın .


6

Aşağıdaki kodu yazın, viewDidLoadyoksa daha iyi olabilirinitWithNibName:

  self.navigationItem.title = @"title";

Teşekkürler.


6

👇🏻 da kullanabilirsiniz

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

2

Bu kod benim için çalışmadı

self.navigationItem.title = @"Title here";

Ama bu işe yaradı.

self.title = "Title Name"

2

UIViewController görünümünüzdeDidLoad

self.navigationItem.title = "The title";  //In swift 4

veya

sadece yapabilirsin

self.title = "The title"

hile yapacak

Küresel olarak çoğaltmak için yukarıdaki ifadeyi uygulama temsilcisine de koyabilirsiniz.


0

ViewDidLoad yönteminde kullanın

Biçim :

@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.

Misal :

self.navigationItem.title = @"Title here";

0

çok önemli not: yukarıda belirtilen değişiklikleri ana görünüm Denetleyicisinin viewDidLoad yönteminde veya film şeridindeki ebeveyn gezinme çubuğunda yaptığınızdan emin olun.


0

Bazen başlığı güncellediğiniz ve herhangi bir etkiye neden olmadığı bir durumla karşılaşabilirsiniz, bu, özel bir görünüme sahip topItemolduğunuzda olabilir , bu nedenle şu şekilde güncellemek isteyebilirsiniz:(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.