UIPopoverController *historyPop = [[UIPopoverController alloc] initWithContentViewController:nav];
[nav release];
[historyPop setPopoverContentSize:CGSizeMake(400, 500)];
[historyPop presentPopoverFromRect:CGRectMake(button.frame.origin.x, button.frame.origin.y, button.frame.size.width, 5) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
//[historyPop release];
यह मेरा वर्तमान कोड है, हालांकि विश्लेषक का कहना है कि शायद एक रिसाव है, जो वहां है (रिलीज लाइन पर टिप्पणी की गई है)। लेकिन अगर मैं रिलीज लाइन को अनदेखा करता हूं तो ऐप दुर्घटनाग्रस्त हो जाता है और कहता है कि पॉपओवर पर डेलोक पहुंच गया था, जबकि यह अभी भी दिखाई दे रहा है, तो जब मुझे पॉपओवर नियंत्रक को बिल्कुल जारी किया जाना चाहिए?UIPopoverController और मेमोरी प्रबंधन
प्रस्तुत करने वाले व्यू कंट्रोलर को UIPopoverController के प्रतिनिधि के रूप में सेट करना पॉपओवर नियंत्रक को बनाए रखता नहीं है। प्रतिनिधि का उपयोग करने का मुद्दा यह है कि जब आप 'popoverControllerDidDismissPopover:' कॉल प्राप्त करते हैं तो आप उचित रूप से पॉपओवर नियंत्रक को छोड़ सकते हैं। तो, दोनों करना सबसे अधिक समझ में आता है। –
यह खूनी परेशान है कि वे प्रस्तुत करते समय बनाए नहीं रखते हैं, और यह अन्य समान तरीकों को पूरी तरह से बेदखल करता है (जैसे मॉडल विचार प्रस्तुत करना, सबव्यू जोड़ना) –
नोट: यदि आप गैर-प्रतिनिधि मार्ग पर जाते हैं, तो आपको "[यूआईपीओवर कंट्रोलर dealloc] तब भी पहुंचा जब पॉपओवर अभी भी दिखाई दे रहा है "यदि उपयोगकर्ता पॉप-ओवर को खारिज कर देता है और तुरंत एक और पॉप-ओवर लोड करता है - पहले व्यक्ति को" गैर-दृश्यमान "पाने में समय लगता है और इसे समाप्त होने से पहले इसे हटा दिया जाएगा, एक दुर्घटना का कारण बनता है। – Jason