2011-10-04 10 views
15

Navigasyon denetleyicisi olan bir uygulama üzerinde çalışıyorum. Görünüm başlangıçta yüklendiğinde başlığın nasıl ayarlanacağını biliyorum. Yeni bir görünüm denetleyicisini zorluyorum ve onun başlığını ayarladım. Şimdi sorun, geri düğmesine bastığımda, orijinal görüntü denetleyicisinin başlığı artık yok. BennavigationController title

- (void)viewWillAppear:(BOOL)animated { 
    self.navigationController.title = @"Some Title"; 
} 

Bu
olsa başlık set vermedi ... yapmaya çalıştı. Ne yapabileceğimi bilen var mı?

+0

orijinal denetleyicisi için başlık değiştirilemez: | Bilerek kasıtlı bir şey yapmadıkça. bazı kodlar gönderin. – Legolas

+0

Yani "self.navigationController.title" yi "nil" veya "@" "' kodunuzda başka bir yere ayarlamıyorsunuz? – EmptyStack

+1

2 kontrol denetleyicim var ... sırasıyla A ve B diyelim. A'nın başlığını viewDidLoad yönteminde ayarlıyorum. Ardından B'yi bastım ve B başlıkını viewDidLoad yönteminde farklı bir şeye ayarladım. B'deki Geri düğmesine bastığımda, B'nin denetleyicisi açılır ve A, başlıksız olarak gösterilir. –

cevap

36

UINavigationController, geçerli UIViewController'dan başlığın değerini alır.

basitçe aşağıdakileri yapın bir görünüm Denetleyicisi için bir başlık ayarlamak için: Görünüm Kontrolörleri her biri için

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    self.title = @"Some Title"; 
} 

, kök da dahil olmak üzere.

+0

Hikaye panosu arayüz oluşturucusunda görüntüleme denetleyicisi için başlığı ayarlıyorum. ama bu işe yaramıyor! – hasan83

+0

Bunu kullanarak dikkatli olun, bir TabBarController içine yerleştirilmiş bir NavigationController varsa, bu sekme başlığı ve gezinti çubuğu başlığını ayarlayacaktır! bunun yerine self.navigationItem setTitle' kullan –

9

Gezinme öğesinin başlığını değiştirmeyi deneyin.

[self.navigationItem setTitle:@"Some Title"]; 
0

Başlığınızı bu şekilde ayarlamayı deneyin. Başlığında ayrıntılarını özelleştirmek isterseniz

navigationItem.title = "Custom title" 

ya:

self.navigationitem.title = @"My Title"; 
3

3 Swift içinde

let titleLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 30)) 
titleLabel.textColor = UIColor.red 
titleLabel.text = "Hello" 
titleLabel.textAlignment = .center 
titleLabel.backgroundColor = UIColor.green 
titleLabel.font = UIFont(name: "Baskerville-Bold", size: 20) 
navigationItem.titleView = titleLabel