2014-02-15 47 views
0

我已經使導航欄透明,這很棒。然而,現在,當我在應用程序中瀏覽消息應用程序時,導航欄也是透明的,這看起來很奇怪。這些消息僅被部分屏蔽並顯示在頂部。我的導航欄是透明的,但是現在消息應用導航欄也是透明的

下面是我在appDelegate爲了使導航欄消失那樣:

[[UINavigationBar appearance] setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; 
[[UINavigationBar appearance] setShadowImage:[UIImage new]]; 

你可以想像,沒有在消息傳遞應用程序的導航欄很奇怪。如何將此視圖更改回來?

+1

你可以調用backgroundImageForBarMetrics將它設置爲一個空的圖像之前,緩存結果,然後調用setBackgroundImage並在想要不透明的條紋時將該原始圖像傳回來? –

+0

http://www.appcoda.com/customize-navigation-status-bar-ios-7/ – NANNAV

+0

jeffamaphone你提出了一個非常好的建議。不過,在我使用上面的代碼之前,我試圖保存圖像,但仍然只有一個零圖像。奇怪的。無論如何,謝謝你的想法。 – fragle

回答

0

我的靈感來自你的答案,這裏是我如何修復它。首先,在要求顯示消息應用程序的方法中,我將導航欄的圖像設置爲零,這會將其恢復爲默認外觀。

[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 
在我的viewWillAppear中的方法爲用戶返回到視圖控制器

然後,我只是用這個代碼再次

[[UINavigationBar appearance] setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; 
1

在系統消息VC呈現之前和解散後,您應該再次設置該外觀。 UIAppearance確實改變了你的應用程序中所有類的外觀,包括系統自動化的VC。

謝謝,jbouaziz。 看看這個問題:Override UIAppearance property for MFMailComposeViewController

+0

確實,您應該添加一些代碼。你剛剛說的是在這裏解釋http://stackoverflow.com/a/15580732/1835155。有可能是一種更清潔的方式,但是..它完成了這項工作! – jbouaziz