2012-07-04 31 views
6

मैं आईओएस शामिल 5 के UIAppearance सुविधा मेरी सार्वभौमिक अनुप्रयोग के लिए एक अनूठा विषय देने के लिए करने की प्रक्रिया में हूँ के लिए निकालें कस्टम NavBar पृष्ठभूमि। वर्तमान में, मैं एप्लिकेशन कस्टम नेविगेशन सलाखों देने के लिए मेरे अनुप्रयोग प्रतिनिधि में कुछ कोड लागू किया है:UIAppearance UIPopoverController

UIImage *navBarImage = [[UIImage imageNamed:@"navigationBar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(7, 7, 7, 7)]; 
[[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault]; 

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

संपादित करें: कृपया ध्यान दें कि यह एक सार्वभौमिक अनुप्रयोग है और मैं iPad पर एक UIPopoverController और iPhone/iPod पर एक मॉडल को देखने के माध्यम से चित्र पिकर खोलें। मैं केवल आईपैड पॉपओवर पर navBar के लिए कस्टम पृष्ठभूमि को हटाना चाहता हूं, न कि मोडल व्यू पर।

कैसे यह वर्तमान में लगता है कि: enter image description here

मैं यह कैसे की तरह लग रहे हैं: आपकी मदद के लिए अग्रिम में enter image description here

धन्यवाद, Guvvy

उत्तर

14

+appearanceWhenContainedIn: विधि का उपयोग कर हटाने की कोशिश करें जब वे पॉपओवर नियंत्रकों में निहित होते हैं तो नेविगेशन बार से आपकी पृष्ठभूमि-छवि अनुकूलन। कुछ इस तरह:

[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 

कि क्या nil करने के लिए एक नेविगेशन पट्टी की पृष्ठभूमि छवि स्थापित करने को पुनर्स्थापित करता है उसके डिफ़ॉल्ट रूप-यदि वह काम नहीं करता, तो आप विपरीत दृष्टिकोण लेने के लिए हो सकता है, और प्रदान करते हैं यह दस्तावेज़ से स्पष्ट नहीं है गैर-पॉपओवर कंटेनर व्यू कंट्रोलर की सूची जो आप +appearanceWhenContainedIn: पर उपयोग कर रहे हैं।

+2

'nil' के लिए यह निर्धारित करना काम किया है। आपकी मदद के लिए बहुत धन्यवाद! मुझे विश्वास नहीं है कि मैं खुद से यह नहीं समझ पाया। – Gavy

+0

एक ही चाल बटन के लिए भी काम करता है, उदाहरण के लिए: '[[UIBarButtonItem appearanceWhenContainedIn: [UINavigationBar वर्ग], [UIPopoverController वर्ग], शून्य] setBackgroundImage: forState शून्य: UIControlStateNormal barMetrics: UIBarMetricsDefault];' –