2012-08-07 22 views
7

Gönderdiğim çok sayıda görüntüye sahip bir storyboard iOS uygulamasına sahibim. "Gösterir Araç Çubuğu" seçeneği ile bir UINavigationController var, sonra benim görünüm hiyerarşisi boyunca doldurur.Bir UINavigationController araç çubuğunu storyboard'ları kullanarak nasıl gizleyebilirim?

View A --(push)--> View B --(push)--> View C 

görüntüleme, görüntüleme B görüntüle B nin itmek için kullanılan araç çubuğu üzerindeki bir düğme ile, normal bir görünüşüdür denetleyicisidir:

Bence akışı 3 defa, A, B, ve C ki Bir masa denetleyicisi, bu yüzden burada araç çubuğunu gizlemek istiyorum. View C, gösterilmesi gereken bir araç çubuğuna sahip, Görünüm A gibi başka bir görünümdür.

Xcode/Storyboard'da, eğer View BI'da "Push on bottom bar" ı seçerseniz, tam olarak bunu yapar - alt çubuk View B için gizlenir. Aynı şekilde 'Bottom bar' için 'None' seçeneğini seçersem Seçenek, Görünüm B için bir bar yok. İyi.

İşte benim sorunum: Ne yaptığımın bir önemi yok, B seçeneği için herhangi bir seçenek kullanarak, araç çubuğum C görünümüne geri dönmez. C Görünümünün araç çubuğunu belirttiğim gibi ayarlıyorum (ve push'de gizle) t göster, ya da el ile 'Araç Çubuğu' ayarlıyorum.

Herhangi bir fikrin var mı?

cevap

15

As @ Zoltán, Storyboard tam bir cevap vermediğini söyledi.

Self.navigationController.toolbarHidden = YES/NO ayarı viewDidLoad veya viewWillAppear işlevseldir, ancak çirkin (görünüm geçişi animasyonu sırasında araç çubuğunun yerine siyah bir dikdörtgen görüntülenir).

Burada film şeridindeki "gizlemek itme üzerine" seçeneğinin animasyon düzgünlüğü taklit etmek Görünüm B kontrolörü (ve Görünüm C için ters) için did:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.navigationController setToolbarHidden:YES animated:YES]; 
} 

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [self.navigationController setToolbarHidden:NO animated:YES]; 
} 
+0

[super viewWillAppear: animasyonlu] ve [super viewWillDisappear: animasyonlu] eklediniz mi? –

+1

Üstün görüşünü çağırmayı unutmayınWillAppear ve viewWillDisappear! – liefersfl

+1

Mükemmel! Swift'de: self.navigationController? .setToolbarHidden (doğru, canlandırılmış: true) – abanet

2

Bunu yalnızca Storyboard'da yapabileceğinizi düşünmüyorum. Ancak, her zaman görüntülenecek şekilde ayarlayabilir, düğmelerin görünmesini istediğiniz her görünüm için üzerine koyabilirsiniz ve numaralı telefonu arayabilirsiniz. Self.navigationController.toolbarHidden = YES; Araç çubuğunun görünmesini istemediğiniz bir viewcontroller yüklendiğinde. Bundan sonra araç çubuğunu istediğiniz başka bir VC görüntülenirse, sadece araç çubuğunuHidden 'i NO olarak ayarlayın.

+0

Bu işler sadece. Geçiş, araç çubuğunun kaybolduğu çirkin bir kara leke üzerinde geçiş sağlar. Ancak gereken kod ve Storyboard'ların tüm şeyi sağlamadaki yetersizliği doğru. – Freney

İlgili konular