2013-09-25 5 views
10

की बजाय अर्ध-पारदर्शी के रूप में दिखाई दे रहा है यह एक ऐप में है जिसे मैं आईओएस 6 से परिवर्तित कर रहा हूं। प्रारंभ में व्यू कंट्रोलर नेविगेशन बार के नीचे मुख्य दृश्य की सामग्री के साथ आईओएस 7 के तहत दिखाया गया था।यूनाविगेशनबार अपारदर्शी सफेद

यूआई बिल्डर दृश्य में, मैंने उस समस्या को हल करने के लिए "विस्तारित किनारों" अनुभाग में "शीर्ष बार्स के नीचे" और "नीचे के नीचे बार्स" को बंद कर दिया। हालांकि, यह इस स्क्रीन पर काम करता है, नेविगेशन बार पारदर्शी प्रतीत होता है (नीचे स्क्रीनशॉट में ग्रे के रूप में आता है)।

मैंने "सिम्युलेटेड मेट्रिक्स" के तहत "ओपेक नेविगेशन बार" में स्पष्ट रूप से "टॉप बार" सेट करने का प्रयास किया है, लेकिन इसका कोई प्रभाव नहीं है।

मैं कोशिश की है सेटिंग:

self.navigationController.navigationBar.translucent = NO; 
मेरी ViewController के init कोड में

, लेकिन यह भी कोई प्रभाव नहीं है।

मुझे क्या याद आ रही है?

अद्यतन: यदि मैं स्टैक में अपने पहले व्यू कंट्रोलर में self.navigationController.navigationBar.translucent = NO; सेट करता हूं, तो यह काम करता है। हालांकि, प्रश्न में ViewController से पहले, मैं पारदर्शी navbar चाहते हैं। यह केवल तभी होता है जब मैं कई परतों को गहराई से देखता हूं कि मैं एक गैर-पारदर्शी बार चाहता हूं (इस दृश्य में कोई स्क्रोल करने योग्य डेटा नहीं है, इसलिए यह पारदर्शी होने का अर्थ नहीं है)।

यहाँ मैं क्या नेविगेशन बार में दिखाई दे रही है का एक स्क्रीनशॉट है:

Attempt to make bar white opaque have failed thus far in iOS 7...

+0

http://stackoverflow.com/questions/18929864/how-do-i-change-the-navigation-bar-color-in-ios-7/18929980#18929980 – Rajneesh071

उत्तर

19

मुद्दा यह था कि मैं

self.navigationController.navigationBar.translucent = NO; 

बुला रहा था के बाद मेरे विचार दिखाई दिया। मैं अपने viewWillAppear विधि में है कि कोड में ले जाया गया है, और अब इसे सही ढंग से प्रकट होता है:

Correct

+1

इसे '-viewDidLoad:' पर ​​कॉल करना काम करने के लिए भी। –

0

तुम सब iOS6 के लिए क्या करने की जरूरत नहीं करने के लिए नियंत्रक के fullscreenlayout सेट करें और फिर अपने navigationController

[controller setWantsFullScreenLayout:NO]; 
को यह पुश करने के लिए है
4

आप नीचे दिए गए कोड की कोशिश कर सकते हैं ...

self.navigationController.navigationBar.barTintColor = [UIColor redColor]; 
self.navigationController.navigationBar.translucent = NO; 

और देखें viewDidLayoutSubviews समारोह में इस कोड को शामिल करें ...

4

आप बोर्ड भर में सेट कर सकते हैं एक एप्लिकेशन को इस का उपयोग कर के साथ:

UINavigationBar.appearance().navigationBarAppearace.translucent = false 

मैं अपने AppDelegate कक्षा में यह करने के लिए जब अनुप्रयोग शुरू में अप लोड करता करते हैं।

+0

मेरा मानना ​​है कि इसे बदल दिया गया है 'UINavigationBar.appearance()। Translucent = false' अब – FortuneFaded

+0

इसे स्विफ्ट 3 में और' isTranslucent' में बदल दिया गया है। –

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