2011-08-26 11 views
12

मेरे ऐप में मैं MFMailComposeViewController का उपयोग कर रहा हूं। मैंने टाइटल बार में back और Done बटन रखा है। मेरे पास शीर्षक रंग काला रंग में है, लेकिन मेरे पास नीली रंग में बटन पृष्ठभूमि है। बटन पृष्ठभूमि रंग को black रंग में कैसे बदलें?MFMailComposeViewController में बटन कैसे बदलें?

उत्तर

17

आप पहली बार बटन शैली बदलने के लिए: barButton.style = UIBarButtonItemStyleBordered;

बाद में, नेविगेशन पट्टी बटन के रंग निम्न कोड के साथ बदला जा सकता है:

[[mailComposer navigationBar] setTintColor:[UIColor blackColor]]; 
4

मैं इस कस्टम बटन जोड़ने के लिए पीछा मानक की जगह रद्द करने और भेजने के बटन:

// Fetch the UINavigationItem object of the nav bar 
UINavigationItem *mailVCNavItem = [mailVC.navigationBar.items objectAtIndex:0]; 

// Get the old bar button item to fetch the action and target. 
UIBarButtonItem *oldCancelBarButton = [mailVCNavItem leftBarButtonItem]; 

// Create your new custom bar button item. 
// In my case I have UIButton with image set as a custom view within a bar button item. 
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[backButton setImage:[UIImage imageNamed:@"backButton.png"] forState:UIControlStateNormal]; 
[backButton addTarget:oldCancelBarButton.target action:oldCancelBarButton.action forControlEvents:UIControlEventTouchUpInside]; 
backButton.bounds = CGRectMake(0.0, 0.0, 40.0, 25.0); 
[[barButtonItems objectAtIndex:0] setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:backButton]]; 

दुर्भाग्य से मैं वा भेजें बटन को प्रतिस्थापित करने में सक्षम नहीं है।

यह बटन को बेकार प्रदान करता है।

+0

iOS7 में मेरे लिए काम नहीं करता है, लेकिन समझदार कोड लग रहा है। – quantumpotato

1
स्विफ्ट के लिए

(मैं स्विफ्ट 1.2 उपयोग कर रहा हूँ)

var mc: MFMailComposeViewController = MFMailComposeViewController() 
mc.mailComposeDelegate = self 
mc.setSubject(emailTitle) 
mc.setToRecipients(toRecipients) 
mc.navigationBar.tintColor = UIColor.blackColor() 
+0

पूरी तरह से काम करता है! धन्यवाद! – Lachtan

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