2012-07-04 25 views
6

Evrensel uygulamamı benzersiz bir tema vermek için iOS 5'in UIAppearance özelliğini ekliyorum. Şu anda, uygulama özel gezinti çubukları vermek benim App Delegesi bazı kod uygulamış:UIAppearance UIPopoverController için Özel NavBar Arkaplanını Kaldırma

UIImage *navBarImage = [[UIImage imageNamed:@"navigationBar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(7, 7, 7, 7)]; 
[[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault]; 

Bu iyi çalışıyor ve parlak bir gradyan Apple'ın düz stilinden tüm gezinme çubuklarını değiştirir. Ancak, sahip olduğum problem, benim de istemediğim bir stili geçersiz kılmasıdır. Benim sorunum, iPad'in UIPopoverController'ındaki gezinme çubuğu arka planını geçersiz kılarak, çirkin bir kullanıcı deneyimi yaratmasıdır. Lütfen bana nasıl düzeltileceğini söyle.

Düzenleme: Bunun bir evrensel uygulama olduğunu ve iPad'de bir UIPopoverController aracılığıyla görüntü seçiciyi açtığımı ve iPhone/iPod'da kalıcı bir görünüm açtığını unutmayın. Sadece modal görünümde değil, iPad popover'ında navBar'ın özel arka planını kaldırmak istiyorum.

Nasıl şu anda benziyor: Ben benzemek istiyorum nasıl enter image description here

: Yardımlarınız için şimdiden enter image description here

teşekkür, Guvvy

cevap

14

kaldırmak için +appearanceWhenContainedIn: yöntemi kullanmayı deneyin pop-up denetleyicilerinde bulunduklarında gezinme çubuklarından arka plan görüntüsü özelleştirmeniz. Böyle bir şey: nil bir navigasyon çubuğunun arka plan resmi ayarı Bu işe yaramazsa varsayılan eğer görünüş-, sen tam aksini almak zorunda ve sağlayabilir geri yükler olsun bu belgelerinden net değil

[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 

+appearanceWhenContainedIn: için kullandığınız pop-up olmayan konteyner görünümü denetleyicilerinin listesi.

+2

Bunu 'nil' olarak ayarlamak işini yaptı. Yardımın için çok teşekkürler! Bunu kendim çözmediğime inanamıyorum. '; ' [UIBarMetricsDefault [UIBarButtonItem appearanceWhenContainedIn: [UINavigationBar sınıfı], [UIPopoverController sınıfı] nil] setBackgroundImage: forState nil: UIControlStateNormal barMetrics] – Gavy

+0

aynı trick örneğin, çok düğme için çalışır –