2013-10-13 84 views
8

我有一個UINavigationBar,它在應用程序委託類中設置了一個背景圖像,所以你可以想像爲什麼我不喜歡導航欄是半透明的。我相信這是這種情況的罪魁禍首:http://imgur.com/v3e0NIoiOS 7 UINavigationbar setTranslucent:NO崩潰應用

不管怎麼說,當我把這一行代碼:

[[UINavigationBar appearance] setTranslucent:NO]; 

在我的AppDelegate我遇到這樣的錯誤:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** Illegal property type, B for appearance setter, _installAppearanceSwizzlesForSetter:' 

即使當我嘗試單獨使每個UINavigationbar在每個類中都不透明,我仍然在圖像中有那個愚蠢的白色條!沒有錯誤被拋出,這讓我想知道代碼是不是工作,或者如果透明度不是我的問題?

謝謝!

編輯:

下面是我用我的AppDelegate進行檢測NavBar自定義背景代碼:

[[UINavigationBar appearance] setTitleTextAttributes: @{ 
                 UITextAttributeTextColor: [UIColor whiteColor], 
                 UITextAttributeTextShadowColor: [UIColor blackColor], 
                 UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)], 
                 UITextAttributeFont: [UIFont fontWithName:@"Code-Bold" size:23.0f] 
                 }]; 
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:NO]; 

UIImage *navBarImage = [[UIImage imageNamed:@"menubar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 15, 5, 15)]; 

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

即使當我做UIViewController的背景黑色,白色酒吧仍然存在..我現在非常懷疑透明度是我的問題!

+0

我不想做一個自定義導航欄.. – user1064249

回答

0

我你使用Interface Builder你可以從這個

XIB文件禁用translucen - >屬性檢查器 - >模擬指標和機頂盒酒吧屬性不透明

或者嘗試

self.navigationController .navigationBar.barStyle = UIBarStyleBlackOpaque;

或或或檢查這個帖子 https://stackoverflow.com/a/19128721/2876717

+0

我m使用故事板:( – user1064249

+0

我試過了UIBarStyleBlackOpaque,雖然白色電池和時間看起來不錯,但白色條仍然存在 故事板選項不存在,因爲我使用導航控制米勒。 – user1064249

5

泰本,並將其放置在每一個viewcontrollers類代替的viewdidload

self.navigationController.navigationBar.translucent = NO; 
+1

我嘗試過,但白色仍在顯示。讓我覺得如果半透明實際上是我的問題.. – user1064249