मेरा एप्लिकेशन कभी-कभी ट्रैक को खो देता है कि किस प्रतिक्रियाकर्ता को टच इवेंट को संभालना चाहिए।यूआईबटन घटना ने 1% समय संभाला नहीं: मुझे अपने उत्तरदाता श्रृंखला में किसको दोष देना चाहिए?
मेरे स्थिति:
- एक XIB फ़ाइल 3 विचारों को परिभाषित:
- 2 अतिरिक्त दृश्य दृश्य पदानुक्रम प्रोग्राम के रूप में
- एक फ़ाइल के मालिक दृश्य के रूप में देखने के लिए
- सबव्यूव (सबव्यूए) में से एक
UIButton
है,FirstResponder
पर चयनकर्ता भेजने के लिए कॉन्फ़िगर किया गया है जब एक "टच अप के अंदर" घटना का पता चला है - SubviewA जानता है कि कैसे संभाल करने के लिए समय की
myAction:
99%, सब कुछ ठीक हो जाता है। जब उपयोगकर्ता बटन को टैप करता है, तो सबव्यूए myAction:
संदेश का ख्याल रखता है और सबकुछ ठीक है। लेकिन कई बार, उपयोगकर्ता शिकायत करते हैं कि बटन "फ्रीज" है और मैंने वास्तव में मांग पर होने के लिए स्पष्ट परिदृश्य खोजने में सक्षम होने के बिना इसे दो बार पुन: उत्पन्न किया।
मेरे जांच अब तक है:
- जब कुछ नहीं होता जब बटन को टैप:
- मेरी बटन नल का पता लगाता है जब
myAction:
दबाया यह प्रकाश डाला जाता है कारण SubviewA पर नहीं बुलाया जाता है
- शेष यूआई उत्तरदायी
जिस कोड के बारे में मैं बात कर रहा हूं वह कुछ विरासत कोड है जिसे मैं ठीक करने की कोशिश कर रहा हूं। इसके सबव्यूज़ में से किसी एक के लिए एक घटना का जवाब देने के लिए एक अजीब वास्तुकला की तरह लगता है। अब तक, मैंने टच इवेंट्स की देखभाल करने के लिए हमेशा फाइल के मालिक का उपयोग किया है, इसलिए मैंने प्रतिक्रियाकर्ता चेन को बग के लिए आदर्श आदर्श माना। लेकिन मुझे नहीं मिल रहा है क्यों! मेरी समझ से, चूंकि बटन को संदेश को संभालने का तरीका नहीं पता है और इसमें कोई कंट्रोल नियंत्रक संलग्न नहीं है, इसे इसे अपने पर्यवेक्षण (बटन ए, जो इसे संभालने के बारे में जानता है) को अग्रेषित करना चाहिए!
मेरे प्रश्न हैं:
- जहां बग से आ सकते हैं पर कोई विचार? (उत्तरदाता श्रृंखला?)
- कोई टिप्पणी इस बात पर कोई टिप्पणी करती है कि दृश्य को अपने बटन को स्वयं ही संभालना चाहिए या यदि कोई दृश्य नियंत्रक इसे करना चाहिए?
संपादित करें: मैं कैसे बग को ठीक करने पर एक विचार है: बल्कि इंटरफ़ेस बिल्डर के भीतर FirstResponder का उपयोग करने से बटन कार्रवाई सीधे SubviewA करने के लिए तार। इस सवाल को पोस्ट करने का कारण यह समझने की कोशिश करना है कि प्रतिक्रियाकर्ता श्रृंखला समय-समय पर क्यों काम नहीं कर रही है।
कुछ कोड देखने के लिए अच्छा रहें ... – tarmes
नहीं। एम कोड शामिल है: केवल एक्सआईबी फाइलें, जो साझा करना वास्तव में आसान नहीं हैं। –