2013-10-13 8 views
8

मेरे पास एक यूआईएनविगेशनबार है जिसमें ऐप प्रतिनिधि वर्ग में पृष्ठभूमि छवि स्थापित की गई है, इसलिए आप कल्पना कर सकते हैं कि मैं नेविगेशनबार को पारदर्शी क्यों नहीं करना चाहूंगा। मेरा मानना ​​है कि यह इस बात के लिए दोषी है: http://imgur.com/v3e0NIoआईओएस 7 यूनाविगेशनबार सेट ट्रांस्लुकेंट: कोई क्रैश ऐप

फिर भी जब मैं कोड की इस पंक्ति में कहें: मेरे AppDelegate में

[[UINavigationBar appearance] setTranslucent:NO]; 

मैं इस त्रुटि का सामना करना:

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

यहां तक ​​कि जब मैं करने की कोशिश व्यक्तिगत रूप से प्रत्येक कक्षा में प्रत्येक UINavigationbar गैर-पारदर्शी बनाते हैं, मेरे पास अभी भी छवि में वह बेवकूफ सफेद बार है! यद्यपि कोई त्रुटि नहीं फेंक दी गई है, जो मुझे आश्चर्य करती है कि कोड सिर्फ काम नहीं करता है, या यदि पारदर्शिता मेरी समस्या नहीं है?

धन्यवाद!

संपादित करें:

यहाँ कोड मैं अपने AppDelegate में उपयोग कर रहा हूँ NavBar के लिए कस्टम पृष्ठभूमि बनाने के लिए है: जब मैं UIViewController की पृष्ठभूमि काला करने

[[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]; 

भी, सफेद पट्टी है अभी भी वहाँ .. अब मुझे संदेह है कि पारदर्शिता मेरी समस्या है!

+0

मैं नहीं बल्कि एक कस्टम NavigationBar नहीं .. – user1064249

उत्तर

0

मैं तुम्हें इंटरफ़ेस बिल्डर का उपयोग आप इस

XIB फ़ाइल से translucen निष्क्रिय कर सकते हैं -> इंस्पेक्टर विशेषताएं - अपारदर्शी

करने के लिए> नकली मेट्रिक्स और सेट टॉप बार संपत्ति या कोशिश

self.navigationController .navigationBar.barStyle = UIBarStyleBlackOpaque;

या या या इस पोस्ट https://stackoverflow.com/a/19128721/2876717

+0

मैं मैं स्टोरीबोर्ड का उपयोग कर रहा हूं :( – user1064249

+0

मैंने UIBarStyleBlackOpaque को आजमाया, और हालांकि सफेद बैटरी और समय अच्छा लग रहा है, सफेद बार अभी भी है। स्टोरीबोर्ड विकल्प वहां नहीं है क्योंकि मैं नेविगेशन कंट्रो का उपयोग कर रहा हूं ller। – user1064249

5

Ty इस जाँच करें और viewcontrollers बजाय वर्गों में से प्रत्येक के viewdidload में रखें:

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

मैंने कोशिश की, लेकिन सफेद अभी भी दिख रहा है। मुझे लगता है कि अगर पारदर्शी वास्तव में मेरी समस्या है .. – user1064249

संबंधित मुद्दे