2013-02-26 24 views
6

Uygulamamdaki gezinme denetleyicilerinde UIAppearance protokolü kullanılarak ayarlanmış bir özel navBar resmi var. Ancak, uygulama üzerinden posta gönderirken (MFMailComposeViewController aracılığıyla), özel olan yerine varsayılan navBar'ı istiyorum. Bu soruda özetlenen yaklaşımı denedim: UIAppearance Remove Custom NavBar Background for UIPopoverController ama işe yaramadı. Kullandığım kod:UIAppearance MFMailComposeViewController için Özel NavBar Arka Planını Kaldırma

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

Ancak bunun hiçbir etkisi yoktu. Uygulamam iOS 6+. Bu, MFMailComposeViewController'a özgü bir şey mi yoksa bundan bir şey mi eksik?

Düzenleme: diğer yaklaşımlar teşebbüs:

MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; 
mailer.mailComposeDelegate = self; 
mailer.navigationBar.barStyle = UIBarStyleBlack; 
[self.navigationController presentViewController:mailer animated:YES completion:nil]; 
[mailer.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 

UIBarStyleBlack Ayar gibi bazı etkiye sahiptir "İptal" butonuna sonradan siyaha döner, ama arka plan görüntüsü hala eski değerine ayarlanır. Böyle

+0

Dışarı çıkmanın tek yolu "UIAppearance" işlevini kullanmamak, ancak görüntüyü tek tek gereken bu gezinme denetleyicilerinde ayarlamak gibi görünüyor. – SaltyNuts

+0

Bunu UIAppearance ile nasıl yapacağınızı anlatan bir şansınız oldu mu? –

+0

Hayır, yalnızca çalışan çözüm UIAppearance özelliğini kullanmayı bırakmak ve istediğiniz stili her bir navara ayrı ayrı ayarlamaktı. – SaltyNuts

cevap

0

deneyin şey:

MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init]; 
[mail.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 

Bu sadece bu örneğin arka plan görüntüsünü sıfırlamak gerekir. çağırmadan ÖNCE

+0

Bunu denedim, ne yazık ki herhangi bir etkisi yoktu. – SaltyNuts

+0

Posta oluşturma denetleyicisini görüntülemek için çağrı yaptıktan sonra arka plan görüntüsünü ayarlamayı deneyin. – rmaddy

+0

öncesi ile aynı sonucu :( – SaltyNuts

0

Kaldır özel bir arka plan görüntüsü

[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 

,

MFMailComposeViewController *vc = [[MFMailComposeViewController alloc] init]; 

Nokta init önce Navigasyon Bar görünüm için herhangi bir özelleştirme ayarlamaktır.