2011-07-30 15 views
32

मेरे पास UINavigationController है। मैं अपने नेविगेशनबार के दाईं ओर कई बटन जोड़ने की कोशिश कर रहा हूं। इसे कैसे प्राप्त किया जा सकता है? यह किस प्रकार का बटन लेता है? UIBarButton या UINavigationItem?आईओएस - UINavigationController कई सही आइटम जोड़ना?

उत्तर

15

मुझे यकीन है कि मैंने डेवलपर संदर्भ में पढ़ा है कि नेविगेशन बार में अतिरिक्त बटन फेंक दिए गए हैं। मुझे अब वह मार्ग नहीं मिल रहा है। मैंने इसे स्वयं नहीं किया है, लेकिन यह लिंक आपको लगता है कि आपको क्या करना है: (http://www.mattdipasquale.com/blog/2010/11/02/how-to-add-multiple-uibarbuttonitems-to-uinavigationbar/)

क्या आपने नेविगेशन नियंत्रक की टूलबार संपत्ति का उपयोग करने पर विचार किया है?

+0

धन्यवाद, यह वही है जो मैं ढूंढ रहा था। यह थोड़ा सा हैकी है लेकिन यह एक यूनाविगेशनबार – aryaxt

+3

में कई आइटम जोड़ने का एकमात्र तरीका प्रतीत होता है यदि आप सही हैं कि अतिरिक्त दाएं बार बटन आधिकारिक तौर पर फंसे हुए हैं, तो आईओएस 5 में नई संपत्ति jrturton द्वारा नोट किया गया है कि ऐप्पल तैयार है अपने दिमाग को बदलने के लिए। बहुत उत्साहजनक। (और इसका मतलब है कि उपर्युक्त हैक शायद सबमिशन पर स्वीकार किया जाएगा।) – Wienke

+0

नीचे दिए गए उत्तर को प्रश्न का सही जवाब होना चाहिए imho –

0

वहाँ वास्तव में भी एक सा अयस्क hacky है, लेकिन एक ही समय में इस चीज करने का अधिक क्लीनर रास्ता:

UINavigationItem + Toolbars.h: जैसे UINavigationItem पर एक वर्ग को परिभाषित,

@interface UINavigationItem (Toolbars) 

@property (nonatomic, retain) IBOutlet UIToolbar * rightToolBar; 
@property (nonatomic, retain) IBOutlet UIToolbar * leftToolBar; 

- (void)setRightToolBar:(UIToolbar *)_rightToolBar; 
- (UIToolbar *)rightToolBar; 
- (void)setLeftToolBar:(UIToolbar *)_leftToolBar; 
- (UIToolbar *)leftToolBar; 

@end 

UINavigationItem + Toolbars.m:

#import "UINavigationItem+Toolbars.h" 

@implementation UINavigationItem (Toolbars) 

- (void)setRightToolBar:(UIToolbar *)_rightToolBar { 
    self.rightBarButtonItems = _rightToolBar.items; 
} 

- (UIToolbar *)rightToolBar { 
    return nil; 
} 

- (void)setLeftToolBar:(UIToolbar *)_leftToolBar { 
    self.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:_leftToolBar] autorelease]; 
} 

- (UIToolbar *)leftToolBar { 
    return nil; 
} 

@end 

कि करने के बाद, बस आईबी में एक आउटलेट आवंटित एक उपकरण पट्टी (बस एक बनाने के) और Navigat पर प्रदर्शित होने के बटन का आनंद सेटिंग आयन आइटम

+2

आईओएस 5 के रूप में आप बार बटन बटनों की एक सरणी को 'rightBarButtonItems' प्रॉपर्टी' के रूप में असाइन कर सकते हैं। – jrturton

+0

हाँ, आप कर सकते हैं, लेकिन आप उन्हें आईबी में कैसे डाल सकते हैं? मैं व्यक्तिगत रूप से एक दूसरे के बगल में बटन की दृश्यमान उपस्थिति देखने के लिए टूलबार पर रखी गई सब कुछ लेना पसंद करता हूं। – Anton

79

आईओएस 5 के रूप में आप नेविगेशन आइटम के rightBarButtonItems (बहुवचन नोट) संपत्ति पर बार बटन आइटमों की एक सरणी असाइन कर सकते हैं।

+2

यह वास्तव में स्वीकार्य उत्तर होना चाहिए :) – sachadso

28

मैं JRTurtons Xcode 4.5, IOS 6 में जवाब देने और इस तरह इसे लागू किया और यह काम करता इस्तेमाल किया:

// Two buttons at the right side of nav bar 
UIBarButtonItem *addAttachButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAttachmentClicked:)]; 
UIBarButtonItem *sendButton = [[UIBarButtonItem alloc] initWithTitle:LS(@"Send") style:UIBarButtonItemStyleBordered target:self action:@selector(sendClicked:)]; 
self.navigationItem.rightBarButtonItems = @[addAttachButton,sendButton]; 

हालांकि, मैं उल्लेख करना चाहिए, कि UIBarButtonSystemItemPageCurl उस तरह काम नहीं करता।

1

एक्सकोड में नेविगेशन नियंत्रक को कोई भी डिज़ाइन जोड़ना आसान है।

अपने दृश्य के लिए एक UIView जोड़ने बटन आप UIView करने की जरूरत है तो खींचें और navigationController में सही जगह के लिए UIView ड्रॉप

0

Xcode 7.1 में (शायद भी पहले), आप कई जोड़ सकते हैं जोड़ने UINavigationBar के दाईं ओर बाईं ओर आइटम उन्हें खींचकर बस। यदि आप केवल सही स्थान पर खींचते हैं, तो आपको थोड़ा ऊर्ध्वाधर बार मिलता है जो इंगित करता है कि वह आइटम कहां डाला जाएगा।

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