"स्वनिर्धारित बार बटन आइटम के साथ चेतावनी में" सादा शैली एक नेविगेशन आइटम में असमर्थित "


88

मैं एक राउंड रेक्ट बटन को राइट बार बटन आइटम की स्थिति में खींचता हूं, और एक इमेज को राउंड रेक्ट बटन पर सेट करता हूं। "सादा शैली एक नेविगेशन आइटम में असमर्थित" चेतावनी को छोड़कर सभी अच्छी तरह से काम करता है। यहां तक ​​कि अगर मैं बार बटन आइटम की शैली को "बॉर्डर" के लिए चुनता हूं, तो चेतावनी अभी भी है। Xcode 4.2 में क्या बात है? अग्रिम में धन्यवाद!

Ps। मैंने कई बार बटन आइटम को गोल आयत बटन के साथ अनुकूलित किया, कुछ बार Xcode 4.2 एक बार बटन आइटम पर केवल एक चेतावनी दिखाता है, कुछ बार सभी बार बटन आइटम पर चेतावनी दिखाता है।


1
मैंने इस बारे में एक ब्लॉग पोस्ट लिखी: blog.mosheberman.com/…
मोशे

बटन न जोड़ें, बार बटन आइटम जोड़ें। यह मेरी गलती थी।
डैनियल स्प्रिंगर

जवाबों:


135

मैं स्टोरीबोर्ड फ़ाइलों को मैन्युअल रूप से संपादित करके इन त्रुटियों को दूर करने में सक्षम था और <navigationItem>तत्व में बार बटन आइटम पर आक्रामक शैली = "सादा" प्रविष्टि ढूंढता था।

से बदला गया:

<barButtonItem key="rightBarButtonItem" style="plain" id="juB-DL-F9i">

सेवा:

<barButtonItem key="rightBarButtonItem" id="juB-DL-F9i">

इससे चेतावनी साफ हो गई ... सही या गलत।

यह एक मूर्खतापूर्ण हैक हो सकता है और इससे भी बड़ी चिंता की बात यह है कि इसका मूल कारण नहीं था या समग्र दस्तावेज से अदृश्य बार बटन आइटम को हटा दिया गया था। यह एक-एक करके सभी तत्वों के माध्यम से जाने और कुछ नेविगेशन बार खाली होने के बाद (बच्चों के बिना) थे और संभवतः बड़ी मात्रा में कॉपी और पेस्ट (cmd + c | v) इनहेरिटेंस के साथ हुआ और डुप्लिकेट का उपयोग नहीं किया गया (cmd + d) इंटरफ़ेस का निर्माण करने के लिए। हालांकि स्रोत का कारण मूल कारण नहीं था, लक्षण यह था कि बार आइटम तय किए जाने वाले दस्तावेज़ "आउटलाइन दृश्य" में नहीं दिखाए गए थे। इंटरफ़ेस बिल्डर व्यवहार मुझे कई बार अति सूक्ष्म लगता है और एक खाली कंटेनर जहां एक रूपरेखा दृश्य में कुछ होना चाहिए एक गंध है। खैर अब यह मेरे लिए है। कभी-कभी अपमानजनक नोड को हटाने और पुनर्निर्माण अजीब मुद्दों को ठीक करता है।

चेतावनी: इससे पहले कि आप यह कोशिश करें अपने स्टोरीबोर्ड का बैकअप लें ... संस्करण नियंत्रण आपका मित्र है ... मैं कोई जिम्मेदारी नहीं लेता हूं जब आपका स्टोरीबोर्ड पूरी तरह से hosed है और अभ्यस्त संकलन नहीं है। आप सभी मिल जाएगा एक "मैं तुम्हें ऐसा कहा!" मैंने कई बार कठिन तरीका सीखा, लेकिन मेहनती स्रोत नियंत्रण ने मुझे सिरदर्द से बचा लिया।

संपादित करें: कोड ब्लॉक में कोष्ठक लगाएं


24
इंटरफ़ेस बिल्डर में बारबुटोनिटेम का चयन करें, दाईं ओर खुला गुण पैनल, और बार बटन आइटम की शैली को "बॉर्डर" में बदलते हुए स्टोरीबोर्ड फ़ाइल में समान अंतर लागू किया। तो यह सुरक्षित होना चाहिए।
मैश

उस सलाह के लिए धन्यवाद @ मश, जिस तरह से मैंने किया वह संभावित दर्द और पीड़ा से बुरी तरह से ग्रस्त था।
हंटर-ओरियनोिर

@ SpaceDog2 सिर के लिए धन्यवाद। मैंने अभी तक अपग्रेड नहीं किया है, इसलिए मैं इसमें कोई पुष्टि नहीं जोड़ सकता। मैं वैसे भी इस विधि के साथ वास्तविक सावधान रहना होगा। मुझे पता है कि अब तक इसके बहुत से लोगों ने मदद की है। समय में हम देखेंगे कि क्या यह मदद करने के लिए बंद हो जाता है।
हंटर-ओरियनोइर

5
इस समाधान ने मेरे लिए Xcode 7.1 में पूरी तरह से काम किया। इसके अलावा, स्रोत कोड को सीधे संपादित करने के बजाय, आप इसे स्टोरीबोर्ड में ही बदल सकते हैं (शैली को प्लेन से बॉर्डर पर स्विच करके), और इसका ठीक वही परिणाम है style="plain", जो स्टोरीबोर्ड स्रोत कोड से मैन्युअल रूप से हटाने का है। इसलिए, मेरे लिए हंटर का यह सुझाव कानूनी है।
एरिक वैन डेर नीट

Dstudeba के उत्तर भी देखें, मुझे पता भी नहीं था कि उन्होंने जो बताया वह संभव था। फ़ाइल को संपादित करने से सभी को कुछ दर्द और पीड़ा से बचाया जा सकता है। स्रोत नियंत्रण आपके मित्र हैं, सभी के लिए सुरक्षित रहें। ;)
हंटर-ओरियनोिर

31

यदि आप चेतावनी पर क्लिक करते हैं और आप निम्न नेविगेशन आइटम पर नहीं जाते हैं, तो निम्न कार्य करें। (टिप्पणियों में शामिल सुरक्षित विधि से हंटर के जवाब का दृश्य प्रतिनिधित्व)

फ़ाइल ब्राउज़र में स्टोरीबोर्ड पर राइट क्लिक करें और चुनें Open As Source Code

यहाँ छवि विवरण दर्ज करें

स्रोत कोड पृष्ठ में "सादे" के लिए खोज करें, और एक नेविगेशन आइटम से जुड़ा हुआ ढूंढें।

यहाँ छवि विवरण दर्ज करें

दृश्य का नाम पाने के लिए, खोज पट्टी में "दृश्य" डालें और ऊपर दिए गए उदाहरण पर पहली बार खोज करने के लिए पीछे खोज तीर पर क्लिक करेंnavigationItem

यहाँ छवि विवरण दर्ज करें

यहां आपके दृश्य का नाम है, अब आप Interface Builder - Storyboardऊपर वर्णित राइट क्लिक विधि के साथ अपने स्टोरीबोर्ड दृश्य को बदल सकते हैं , और फिर दृश्य मेनू में दृश्य का चयन करें, और उसके अंदर बार आइटम पर जा सकते हैं।

यहाँ छवि विवरण दर्ज करें

गुण निरीक्षक पर जाएँ और से शैली बदलने Plainके लिएBordered

यहाँ छवि विवरण दर्ज करें


1
ठंडा। अगली बार ऐसा होने पर मैं निश्चित रूप से कोशिश करूंगा।
हंटर-ओरियनोविर

13

मैंने डॉक्यूमेंट की रूपरेखा में चारों ओर प्रहार करके प्लेन स्टाइल के बारे में चेतावनी को रोक दिया। वह मेरा नेविगेशन आइटम दिखा रहा था, और उस 2 बार बटन आइटम के भीतर, और उन प्रत्येक बटन के भीतर। आपत्तिजनक सेटिंग बार बटन आइटम पर थी। अपने गुण निरीक्षक में मैंने स्टाइल को प्लेन से डोन में बदल दिया, और चेतावनी चली गई। नोट: मैं XCode 5 का उपयोग कर रहा हूं।


8

यदि आप स्टोरीबोर्ड का उपयोग कर रहे हैं, तो चेतावनी पर क्लिक करें और यह आपको आक्रामक नेविगेशन आइटम पर ले जाना चाहिए (मेरे पास समस्या के लिए दो थे, एक मुझे वहां ले गया दूसरे ने नहीं किया) - शैली को बदलें और परियोजना को साफ करें।

बार बटन शैली सादे करने के लिए सेट


ऊपर इस समस्या में यह वास्तव में मुझे कहीं भी नहीं ले गया। मुझे लगता है कि यह इस विशेष मुद्दे का स्टिकिंग पॉइंट है, आइटम नेविगेटर से पूरी तरह से गायब था, लेकिन dstudeba के जवाब में एक दिलचस्प दृष्टिकोण है, उत्सुक रहें यदि स्टोरीबोर्ड को खोलने से लोगों को अलग तरह से मदद मिलती है।
हंटर-ओरियनोविर

यह सबसे उपयुक्त उत्तर है। मैंने स्टाइल को बॉर्डर में बदल दिया है।
Andrej

6

backBarButtonItem leftBarButtonItemऔर rightBarButtonItemकर रहे हैं UINavigationItemवस्तुओं। इसमें कोई styleसंपत्ति नहीं है UINavigationItemइसलिए यह चेतावनी का कारण है। आपको बारबटन को प्रोग्रामेटिक रूप से सेट करना चाहिए:

iOS 4:  

UIButton *bt=[UIButton buttonWithType:UIButtonTypeRoundedRect];
 [bt setFrame:YourFrame];
 //[bt setImage:[UIImage imageNamed:@"backBT"] forState:UIControlStateNormal];
 [bt addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside];
 UIBarButtonItem *leftButton=[[UIBarButtonItem alloc] initWithCustomView:bt];
 self.navigationItem.leftBarButtonItem=leftButton;

IOS 5+ के लिए:

UIBarButtonItem संदर्भ का "कस्टमाइज़िंग अपीयरेंस" खंड पढ़ें ।


3
मेरे पास एक विरासत वाली परियोजना है जिसमें बहुत सारे दृश्य नियंत्रक और बटन हैं। मैं XCode को यह कहने में नहीं लगा सकता कि मुझे कौन सा बटन चेतावनी दे रहा है। कोई संकेत? धन्यवाद!
ओली

शायद आपके दृश्य नियंत्रकों और "UIBarButtonItenStyle" को ढूंढें। यह आमतौर पर जहां संपत्ति गलत तरीके से सेट की गई है
टिमव्हाइटिंग

1

नेविगेशन बार में राउंड रेक्ट बटन के बजाय UIBarButtonItem का उपयोग करने का प्रयास करें और इसके लिए एक छवि सेट करें।


लेकिन यह UIBarButtonItem की शैली वह नहीं है जिसकी मुझे आवश्यकता है।
लू युआन

1

मेरे मामले में यह एक बैक एरो की छवि थी, जिसे "प्लेन" पर सेट किया गया था।

नेविगेशन पट्टी में सभी आइटम्स को संदर्भित करने के लिए त्रुटि संदेश प्रकट होता है।


0

यह सुनिश्चित करने के बाद कि आपके पास स्टोरीबोर्ड में आपके सभी बार बटन कुछ भी सेट हैं, लेकिन सादे, सुनिश्चित करें कि आप एक git कमिट करते हैं और डेटा डिलीट करते हैं। मैंने हमेशा यह जानने की कोशिश की कि समस्या खुद ठीक क्यों नहीं हुई, और व्युत्पन्न डेटा फ़ोल्डर को हटाने से यह मेरे लिए ठीक हो गया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.