40

मेरे ऐप में, मैं नेविगेशन बार में छवि (लोगो) जोड़ना चाहता हूं। मैं XCode 4.2 और iOS 5.आईफोन ऐप में UINavigationBar में छवि कैसे जोड़ें

मैं जानता हूँ कि UINavigationBar पर काम कर रहा हूँ, UIToolBar आईओएस 5 में बदल दिया गया है तो आईओएस 4.2 UINavigationBar कोड आईओएस 5 में काम नहीं करेगा

मैं में प्रदर्शन छवि का समर्थन करना चाहते 4.2 और 5 संस्करण दोनों में UINavigationBar

मैं UINavigationBar में छवि को प्रदर्शित करना चाहता हूं जैसे नीचे स्क्रीनशॉट में।

Navigation bar image

कृपया इस संबंध में मदद करेगा और अगर वहाँ किसी भी नमूना कोड इसकी मेरे लिए बहुत उपयोगी होता है।

धन्यवाद !!!

उत्तर

76

ऐसा करने का एक तरीका UINavigationItem.titleView और UINavigationItem.rightBarButtonItem का उपयोग करना है। इस तरह:

viewController.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage.png"]]; 
UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage2.jpg"]]];  
viewController.navigationItem.rightBarButtonItem = item;  

यहाँ मैं कस्टम दृश्य भी UIImageView उपयोग कर रहा हूँ, लेकिन यह कस्टम छवि के साथ UIButton हो सकता है।

+0

में समारोह का उपयोग कर के लिए एक प्रोटोकॉल एक्सटेंशन बना सकते हैं विल दोनों iOS4 और 5 के लिए यह काम करता है? और क्या यह 'क्लिंगल' लोगो है जिसे आप यूनाविगेशनबार के लिए पृष्ठभूमि छवि को जोड़ने की कोशिश कर रहे हैं? – Illep

+0

यह कम से कम सिम्युलेटर पर करता है। और मुझे ऐसा कोई कारण नहीं दिख रहा है जो इसे नहीं करना चाहिए। मैं आपका दूसरा प्रश्न नहीं समझ पाया। – barley

+0

धन्यवाद। लेकिन मैंने देखा कि आइटम ऑब्जेक्ट आपके उदाहरण में जारी नहीं है। –

32

एक और तरीका है एक ViewController

// Create your image 
UIImage *image = [UIImage imageNamed: @"logo.png"]; 
UIImageView *imageview = [[UIImageView alloc] initWithImage: image]; 

// set the image view to the title view 
self.navigationItem.titleView = imageview; 
3

स्विफ्ट संस्करण का उपयोग कर के बिना: आप अपने दृश्य नियंत्रक

protocol Customizable { 
    var navigationItem: UINavigationItem { get } 
} 

extension Customizable { 
    func setNavBarLogo() { 

     let logo = UIImage(named: "logo") 
     let logoImageView = UIImageView(image: logo) 

     self.navigationItem.titleView = logoImageView 
    } 
} 
संबंधित मुद्दे