2009-07-11 11 views
5

की पहचानकर्ता संपत्ति को प्रोग्रामेटिक रूप से बदलना मेरे पास UIAarButtonItem के पहचानकर्ता को "जोड़ें" (या "पूर्ववत करें", "फिर से" आदि जैसे कुछ बदलने की क्षमता है)। यह मेरे बटन को एक अच्छी "+" छवि देता है।इंटरफ़ेस बिल्डर के माध्यम से UIBarButtonItem

मैं इसे प्रोग्रामिक रूप से कैसे सेट कर सकता हूं? UIBarButtonItem "setIdentifier" संदेश स्वीकार नहीं करता है।

उत्तर

6

एक बार बनाया गया, UIBarButtonItem का "पहचानकर्ता" संशोधित नहीं किया जा सकता है। हालांकि, यूआई को प्रोग्रामेटिक रूप से निर्मित संस्करण के साथ बटन को बदलकर बदला जा सकता है। उदाहरण के लिए:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                      target:self 
                      action:@selector(doAddAction:)]; 
+10

इस पोस्ट के लिए आपका शीर्षक भ्रामक है, को बदलने के लिए एक नया UIBarButtonItem बना सकता है। यह UIBarButtonItem के पहचानकर्ता को नहीं बदलता है, यह केवल पहचानकर्ता संपत्ति के साथ एक नया बनाता है। मैं मौजूदा बटन पर पहचानकर्ता को संशोधित करने का एक तरीका ढूंढ रहा हूं। एक बेहतर शीर्षक "एक नव निर्मित UIBarButtonItem प्रोग्रामेटिक रूप से पहचानकर्ता संपत्ति को सेट करना" या कुछ समान होगा। – Senseful

+2

मुझे खेद है कि आपने मेरे समाधान पर ठोकर खाई और यह आपकी अपेक्षाओं को पूरा नहीं करता था। सवाल पूछने के बिंदु पर मैं वास्तव में इसे बदलने के लिए एक रास्ता तलाश रहा था। समाधान मेरे लिए काम किया - अगर यह आपके लिए नहीं था तो मुझे खेद है। – rein

2

यदि आप एक बटन शैली हैं: bordered और पहचानकर्ता: कैमरे का उपयोग

UIBarButtonItem *btn; 
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(shotAction:)]; 
btn.style=UIBarButtonItemStyleBordered; 
0

एक बार UIBarButtonItem बनाई गई है, वहाँ कोई रास्ता नहीं पहचानकर्ता को बदलने के लिए है। हालांकि, आप पुराने UIBarButtonItem

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction 
                   target:self 
                   action:@selector(buttonClickedAction:)]; 

self.navigationItem.rightBarButtonItem = barButton; 
संबंधित मुद्दे