2013-02-26 16 views
6

के लिए कस्टम NavBar पृष्ठभूमि को हटाएं मेरे पास मेरे ऐप में नेविगेशन नियंत्रकों में एक कस्टम NavBar छवि है, UIAppearance प्रोटोकॉल का उपयोग करके सेट करें। हालांकि, ऐप के माध्यम से मेल भेजते समय (MFMailComposeViewController के माध्यम से), मैं कस्टम के बजाय डिफ़ॉल्ट navBar चाहता हूं। मैंने इस प्रश्न में उल्लिखित दृष्टिकोण की कोशिश की: UIAppearance Remove Custom NavBar Background for UIPopoverController लेकिन यह काम नहीं किया। मेरे द्वारा उपयोग किया गया कोड था:UIAppearance MFMailComposeViewController

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

लेकिन इसका कोई प्रभाव नहीं पड़ा। मेरा ऐप आईओएस 6+ है। क्या यह MFMailComposeViewController पर विशिष्ट है या क्या मुझे इससे कुछ याद आ रहा है?

संपादित करें: अन्य तरीकों का प्रयास किया:

MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; 
mailer.mailComposeDelegate = self; 
mailer.navigationBar.barStyle = UIBarStyleBlack; 
[self.navigationController presentViewController:mailer animated:YES completion:nil]; 
[mailer.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 

UIBarStyleBlack स्थापना के रूप में कुछ प्रभाव पड़ता है "रद्द करें" बटन बाद में काला हो जाता है, लेकिन पृष्ठभूमि छवि अभी भी पुराने मूल्य पर सेट है। इस तरह

+0

ऐसा लगता है कि 'यूआईपीपीरेंस' का उपयोग न करने का एकमात्र तरीका है, लेकिन उन नेविगेशन नियंत्रकों पर छवि सेट करें जिन्हें इसे अलग-अलग आवश्यकता है। – SaltyNuts

+0

क्या आपके पास कोई भाग्य है कि यह यूआईपीपीरेंस के साथ कैसे किया जाए? –

+0

नहीं, एकमात्र कामकाजी समाधान 'यूआईपीपीरेंस' का उपयोग करना बंद करना था और वांछित शैली को प्रत्येक नेविबार में व्यक्तिगत रूप से सेट करना था। – SaltyNuts

उत्तर

0

कोशिश कुछ:

MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init]; 
[mail.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 

यह सिर्फ इस उदाहरण के लिए पृष्ठभूमि छवि रीसेट करना चाहिए।

+0

इसे भी आजमाया, दुर्भाग्यवश, इसका कोई प्रभाव नहीं पड़ा। – SaltyNuts

+0

मेल लिखें नियंत्रक को प्रदर्शित करने के लिए कॉल करने के बाद पृष्ठभूमि छवि सेट करने का प्रयास करें। – rmaddy

+0

पहले जैसा ही परिणाम है :( – SaltyNuts

0

निकालें कस्टम पृष्ठभूमि छवि कॉल करने से पहले

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

,

MFMailComposeViewController *vc = [[MFMailComposeViewController alloc] init]; 

प्वाइंट init से पहले नेविगेशन बार उपस्थिति के लिए किसी भी अनुकूलन स्थापित करने के लिए है।

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