2010-12-30 22 views
6

Oluşturduğum özel bir Tab Bar denetleyicisi alt sınıfında bir Nav denetleyicim var.Birinin Sekme Çubuğunu ne zaman gizlediğini/göstereceğini bildiren herhangi bir Sekme Çubuğu etkinliği var mı?

Görüntülenen denetleyicilerinden biri Sekme Çubuğunu gizlemeye veya göstermeye çalıştığında (özel) Sekme Çubuğundan bilmek istiyorum. (örneğin, Nac denetleyicisine gizlerBottomBarWhenPushed = YES olan bir VC'yi iterken).

Kısacası Sekme Çubuğunu gizleyen/gösteren ancak Apple'ın referansında hiçbir şey bulamayan olaylardan haberdar olmak istiyorum. UITabBar, UITabBarDelegate, UITabBarController ve UITabBarControllerDelegate'ı aramayı denedim, ancak hepsinin yalnızca sekme çubuğu öğeleriyle ilgili işlevsellik sağladığı görülüyor.

Şimdiden teşekkürler.

cevap

0

Alt sınıf UINavigationController ve hidesBottomBarWhenPushed arkasında ayarlayıcı aleti (ya da doğrudan hidesBottomBarWhenPushed yöntem alt sınıfı için UIViewController alt sınıfı) ve (bir doğrudan ya da bir NSNotification aracılığıyla) UITabBar çağrısı temsilci.

+0

Anladığımdan emin değilim. hidesBottomBarWhenPushed bir eyaleti temsil eden bir özelliktir. Özellik, çubuğu gizleyen gerçek kodu içermez (özellik genellikle bir denetleyici nav vc yığınının üzerine itilmeden önce ayarlanır). – nsof

9

Bir sekme çubuğu denetleyicisi kullanıyorsanız, UIKit, sekme çubuğu denetleyicisinin bağlamında görüntülenecek her gezinme denetleyicisi örneğinin, viewControllers özelliğinden biri olacağını açıkça belirtir. Şimdi her bir UINavigationController örneğinde, bir görünüm denetleyicisine ne zaman eklendiğini bilmenizi sağlayan bir navigationController:willShowViewController:animated: yöntemini tanımlayan bir temsilci vardır.

Sekme çubuğu denetleyicinizi, üzerine itilen her gezinme denetleyicisinin temsilcisi olarak ayarlayarak, denetlenen denetleyicinin hidesBottomBarWhenPushed özellik kümesinin olup olmadığını ve bu durumda bir olay oluşturup oluşturmadığını analiz edebilirsiniz.

Sekme çubuğu denetleyicisinin sekme çubuğunu gizlemek için kullanılan algoritma şu şekildedir: bir denetleyici denetleyicinin kendisi bir sekme çubuğu denetleyicide bulunan bir gezinme denetleyicisine basıldığında, gezinme bölmesinde gezinme kümesinde herhangi bir görünüm denetleyicisi varsa denetleyici hidesBottomBarWhenPushed özellik kümesine sahip, daha sonra sekme çubuğunun gizlenmiş olması gerekir.

Gezinme denetleyicisi seçildiğinde ve yığındaki görünüm denetleyicilerinden biri hidesBottomBarWhenPushed özellik kümesine sahip olduğunda, sekme çubuğu gizlenir.

+0

Gezinme denetleyicisi temsilcisi olarak sekme çubuğu denetleyicisi nasıl ayarlanır? Hata alıyorum. Ben self.navigationController deniyorum .delegate = self.tabBarController' Error - 'UITabBarController türünün değeri atanamaz mı? UINavigationControllerDelegate? ' –

+0

yazmak için' self.navigationController? .delegate = self.tabBarController kullanarak hata düzeltildi! MyCustomTabBarViewController ' –

İlgili konular