2013-10-13 19 views
8

Mam pasek UINavigationBar, który ma obraz tła skonfigurowany w klasie delegatów aplikacji, więc możesz sobie wyobrazić, dlaczego nie chciałbym, aby pasek nawigacyjny był półprzezroczysty. Uważam, że jest sprawcą tego: http://imgur.com/v3e0NIoiOS 7 Zestaw paska nawigacji UCI: Translucent: aplikacja NO crashes

Anyways kiedy mogę umieścić ten wiersz kodu:

[[UINavigationBar appearance] setTranslucent:NO]; 

w moim AppDelegate napotykam ten błąd:

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

Nawet gdy próbuję indywidualnie spraw, aby każdy pasek UINavigationbar był nieprzejrzysty w każdej klasie, wciąż mam ten głupi biały pasek na obrazku! Żadne błędy nie są generowane, co powoduje, że zastanawiam się, czy kod po prostu nie działa, czy też przezroczystość nie jest moim problemem?

Dzięki!

EDIT:

Oto kod używam w moim AppDelegate aby niestandardowe tło dla 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]; 

Nawet gdy robię UIViewController jest czarny, biały pasek jest wciąż tam ... Teraz mam wątpliwości, że przejrzystość to mój problem!

+0

raczej nie sprawiają zwyczaj NavigationBar .. – user1064249

Odpowiedz

0

mogę użyć interfejsu Builder można wyłączyć translucen z tego pliku

XIb -> -> Atrybuty Inspector symulowanych danych i ustawić właściwość górnym pasku nieprzezroczystą

Lub spróbuj

self.navigationController .navigationBar.barStyle = UIBarStyleBlackOpaque;

lub lub lub sprawdzić ten post https://stackoverflow.com/a/19128721/2876717

+0

I m używając storyboard :( – user1064249

+0

Próbowałem UIBarStyleBlackOpaque, i chociaż biała bateria i czas wyglądają ładnie, biały pasek nadal tam jest. Opcja scenorysu nie istnieje, ponieważ używam nawigacji Contro ller. – user1064249

5

Ty to i umieścić go w viewdidload każdej z klas viewcontrollers Zamiast:

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

Próbowałem tego, ale biały wciąż się wyświetla. Sprawia, że ​​myślę, że półprzezroczystość jest moim problemem. – user1064249

Powiązane problemy