2011-06-13 9 views
15

को टैप करते समय UIPopoverController को खारिज न करें, मुझे ऐसा कुछ नहीं मिला जो ऐसा लगता है कि यह कई लोगों के लिए उपयोगी होगा।कुछ खोज के बाद

क्या UIPopoverController बनाने का कोई तरीका नहीं है जब उपयोगकर्ता बाहरी पर कहीं भी क्लिक करता है? मैं चाहता हूं कि उपयोगकर्ता को रद्द बटन का उपयोग करना पड़े (हां, मुझे एहसास है कि यह शायद ऐप्पल के एचआईजी का उल्लंघन करता है, लेकिन यह एक दुर्लभ मामला है और उपयोगकर्ता अनुभव परिप्रेक्ष्य से समझ में आता है)।

किसी भी मदद के लिए धन्यवाद।

+2

"मुझे यह एहसास है *** शायद *** एप्पल के एचआईजी का उल्लंघन करता है ..." क्या आपने इसे पढ़ा? –

+0

मैंने इसे कुछ बार पढ़ा है, लेकिन यह डिज़ाइन के लिए सही समझ भी बनाता है (किसी अन्य ऐप से सहेजने के लिए फ़ाइल खोलना), और यह भी देखा कि कुछ ऐप्स इसे करते हैं। :/ –

उत्तर

20

आप टैप होने पर और आपके पॉपओवर के प्रतिनिधि में वापस हिट-टेस्ट कर सकते हैं NO। - (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController

+1

+1: यह, यह सही है। दस्तावेज़ीकरण में इसके ऊपर skimmed होना चाहिए। धन्यवाद। जब आप डिसमिस कॉल करते हैं तो इसे भी कॉल नहीं किया जाता हैप्रोवरएनिएटेड: इसलिए वास्तव में परीक्षण को भी हिट नहीं करना है। धन्यवाद –

+1

एनबी: इस प्रतिनिधि विधि (वास्तव में 'UIPopoverControllerDelegate' के सभी तरीकों को बहिष्कृत कर दिया गया है): https://developer.apple.com/documentation/uikit/uipopovercontrollerdelegate/1624661-popovercontrollershoulddismisspo?language=objc। – ajbmdi

25

में UIViewController पर प्रदर्शित होने पर modalInPopover संपत्ति सेट करें।

popover = [[UIPopoverController alloc] initWithContentViewController:content]; 
content.modalInPopover = YES; 
[popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

बारे में पता as of iOS5, आप modalInPopover-viewDidAppear के अंदर स्थापित करने के लिए है, न भूलें।

1

तो, मुझे एहसास है कि यह एक पुराना सवाल है। हालांकि, आज समाधान के लिए खोज रहे किसी के लिए एक आसान जवाब है।

यदि आप स्टोरीबोर्ड सेगु का उपयोग करते हैं, तो आप दृश्य में अन्य वस्तुओं के साथ बातचीत की इजाजत देने वाले सेगू पर पासथ्रू प्रॉपर्टी सेट कर सकते हैं। यदि आप ऐसा करते हैं, तो पॉपओवर की सीमाओं के बाहर क्लिक करके पॉपओवर बंद नहीं होगा।

यहाँ कुछ अधिक जानकारी है: What are Anchor and Passthrough used for in popover segues?

और यहाँ एप्पल प्रलेखन से एक अंश है:

उपयोगकर्ता निर्दिष्ट विचारों के साथ बातचीत और खारिज नहीं पॉपओवर करने की अनुमति के लिए, आपको प्रदान कर सकते हैं passthroughViews संपत्ति के लिए एक या अधिक दृश्य।

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