2012-09-25 24 views
16

चूंकि नया एसडीके जारी किया गया था (आईओएस 6), UIDocumentInteractionControllerDelegate के प्रतिनिधि विधि documentInteractionController:canPerformAction: को बहिष्कृत किया गया है।+ UIDocumentInteractionController में खोलें: एसडीके आईओएस 6 में विकल्प कैसे फ़िल्टर करें (CanPerformActions को बहिष्कृत किया गया है)

उस विधि का उपयोग करके आप print: और copy: जैसे डिफ़ॉल्ट क्रियाओं को रोकने में सक्षम थे।

विधि आईओएस 6 के वर्तमान संस्करण में कहा जा रहा है, लेकिन भविष्य के संस्करणों में इस विधि को नहीं बुलाया जाएगा और मेरा ऐप उन कार्यों को दिखाएगा जिन्हें मैं समर्थन नहीं देना चाहता हूं।

मैंने UIDocumentInteractionController और उसके प्रतिनिधि के लिए उपलब्ध प्रलेखन पढ़ा है और मैं कर सकते हैं मैं कर सकता हूं कि मैं कर सकते हैं क्या कर सकते हैं।

कोई विचार?

प्लस के रूप में, मेल या ट्विटर (जो डिफ़ॉल्ट रूप से दिखाई देता है) जैसे ऐप्स फ़िल्टर करने में सक्षम होना बहुत अच्छा होगा, लेकिन मुझे लगता है कि यह संभव नहीं है।

उत्तर

6

मुझे लगता है कि ऐसा इसलिए है क्योंकि ऐप्पल चाहता है कि आप नए UIActivity नियंत्रण का उपयोग करें।

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIActivity_Class/Reference/Reference.html

यहाँ यह कई तृतीय पक्ष ऐप्स को समर्थन करने के लिए विकसित की एक कस्टम नियंत्रण है::

यहाँ यह प्रलेखन है

http://www.cocoacontrols.com/platforms/ios/controls/uiactivitycollection

और इस सवाल को हल करती है कि कैसे आप अपने खुद के कर सकता है यूआईएक्टिविटी:

https://stackoverflow.com/a/12766330/736384

इसलिए, यदि आप उपयोगकर्ता नहीं करना चाहती प्रति का उपयोग कर सकते हैं: और प्रिंट: तरीकों सिर्फ इस गतिविधियों UIActivityViewController के पास, इस तरह:

[activityView setExcludedActivityTypes:[NSArray arrayWithObjects:UIActivityTypeCopyToPasteboard, UIActivityTypePrint, nil]]; 

सभी डिफ़ॉल्ट गतिविधियों को ऐप्पल के दस्तावेज़ लिंक के नीचे सूचीबद्ध किया गया है।

+0

अरे ..जवाब के लिए धन्यवाद! मैंने नहीं देखा कि आने वाले जजा मैं इसमें खोदूंगा, लेकिन एक नज़र में यह भविष्य लगता है। एक बार फिर धन्यवाद! – Omer

+12

तो ... यदि यह सत्य था, तो आप किसी अन्य एप्लिकेशन में फ़ाइल कैसे खोलेंगे (वर्तमान में UIDocumentInteractionController के OpenWith ... और QuickLookPreview के साथ काम कर रहे हैं?)। AFIAICS के लिए UIActivityViewController में इसके लिए कोई समर्थन नहीं है (इसके अलावा UIActivityViewController में कुछ गंभीर सीमाएं भी हैं) – auco

+5

ऑको के साथ सहमत हैं - अब आप कैसे खोल सकते हैं ... xlxs या iOS6 के साथ समान? – Rossi

7

इस तथ्य से सहमत है कि प्रतिनिधि में 'कैनप्रोफॉर्मेशन' को वंचित करना मुश्किल है, हमने उस अच्छे अनाज नियंत्रण को खो दिया जो हम करते थे।

हालांकि, यदि आप चाहते हैं कि किसी अन्य ऐप में दस्तावेज़ को खोला जाए, और कॉपी, प्रिंट और यहां तक ​​कि मेल को हटाना चाहते हैं, तो मुझे लगता है कि UIDocumentInteractionController प्रस्तुत करने के लिए आप विधि के OpenIn संस्करण का उपयोग करना बेहतर कर रहे हैं? अपने UIDocumentInteractionController उपयोग के लिए

यानी presentOpenInMenuFromBarButtonItem:animated: या presentOpenInMenuFromRect:inView:animated:

(presentOptionsMenuFromBarButtonItem:animated: या presentOptionsMenuFromRect:inView:animated: के बजाय)

इस तरह, डिफ़ॉल्ट रूप से, यह केवल शो क्षुधा है कि आपके दस्तावेज़ खोल सकते हैं, और मेल को छुपाता है, कॉपी जाएगा और प्रिंट।

+1

इस तरह से बाकी के विकल्प अनुपलब्ध भी हैं (एफबी, ट्विटर आदि)। अगर कोई ओपनइन और एफबी चाहता है तो क्या होगा ..? – Vive

+0

सिम्युलेटर पर सामग्री खोलने के लिए कोई इंस्टॉल किए गए ऐप्स नहीं हो सकते हैं और मेनू नहीं दिखाया जाएगा। यह क्यू एंड ए देखें: http://stackoverflow.com/questions/23624218/presentopeninmenufrombarbuttonitem-doesnt-cause-menu-to-appear – Suragch

+0

यह अन्य विकल्प अनुपलब्ध btw नहीं बनाता है। और उदाहरण के लिए, Instagram पर साझा करने के लिए वर्तमान में _only_ तरीका है। आईओएस इंटर-ऐप शेयरिंग/संचार की दुखी स्थिति। –