2014-10-15 6 views
6

R आर के साथ सबसे बड़ी समस्याओं में से एक पर बुलाया कैसे प्रतिनिधि के खारिज विधियों (-[popoverPresentationControllerShouldDismissPopover:], -[popoverPresentationControllerDidDismissPopover:]) केवल कहा जाता है उपयोगकर्ता पॉपओवर को खारिज करते हुए अगर पॉपओवर प्रोग्राम के रूप में खारिज कर दिया है नहीं करता है, तो है।UIPopoverPresentationControllerDelegate तरीकों केवल उपयोगकर्ता बर्खास्तगी

मेरे बर्खास्तगी विधियों में बहुत सारे महत्वपूर्ण कोड हैं जिन्हें कॉल करने की आवश्यकता है। क्या यह सुनिश्चित करने के लिए एक शानदार समाधान है कि इस कोड को प्रोग्रामेटिक बर्खास्तगी पर भी बुलाया जाए? (निश्चित रूप से, मैं हर बार खारिज कर "चाहिए" और "किया" कॉल कर सकता हूं ... लेकिन यह त्रुटि-प्रवण और सकल है।)

धन्यवाद।

+0

क्या आपको कोई सुरुचिपूर्ण समाधान मिला? –

+0

यहां मेरे [उत्तर] हैं (http://stackoverflow.com/a/38298712/4593553) कृपया जांचें। – Jerome

उत्तर

2

मुझे प्रोग्रामेटिक रूप से इसे खारिज करते समय मैन्युअल रूप से इसे कॉल करने के बजाय बेहतर समाधान के बारे में पता नहीं है।

[self popoverPresentationControllerDidDismissPopover:self.popoverPresentation]; 

यह आईओएस एसडीके में काफी आम है। उदाहरण के लिए, यदि आप तालिका दृश्य में प्रोग्रामेटिक रूप से एक पंक्ति का चयन करते हैं, तो प्रतिनिधि विधि tableView:didSelectRowAtIndexPath: नहीं कहा जाएगा।

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