2013-01-07 12 views
5

क्या UIActivityViewController द्वारा उपयोग किए गए अंतर्निहित UIActivity प्रकारों द्वारा की गई गतिविधि को ओवरराइड करना संभव है?अंतर्निहित यूआईएक्टिविटी प्रकारों द्वारा किए गए गतिविधि को ओवरराइड करें

उदाहरण के लिए, मैं फेसबुक गतिविधि को अंतर्निहित के बजाय अपने स्वयं के कस्टम दृश्य का उपयोग करना चाहता हूं। मुझे पता है कि आप अपनी खुद की ऐप-विशिष्ट गतिविधियों को बनाने के लिए यूआईएक्टिविटी को उप-वर्गीकृत कर सकते हैं, लेकिन क्या आप हमेशा अंतर्निहित लोगों के लिए डिफ़ॉल्ट व्यवहार से फंस जाते हैं?

+0

हाँ आप किसी भी यूआईएक्टिविटी – Naresh

उत्तर

5

आप अंतर्निर्मित लोगों को ओवरराइड नहीं कर सकते हैं। सबसे अच्छा आप उन्हें निष्क्रिय कर सकते हैं और उन्हें यूआईएक्टिविटी के अपने उप-वर्गों के साथ बदल सकते हैं। कार्यात्मक रूप से, यह उनके ऊपर ओवरराइड करने के समान प्रभाव होगा।

दृश्यमान हालांकि इसका मतलब है कि आपको इन सेवाओं के लिए अपनी खुद की आइकन छवियां प्रदान करनी होंगी। ऐप्पल का कोड इन छवियों को तब ले जाएगा, रंग डेटा को फेंक देगा और ऐप्पल की सामान्य काले-बिंदीदार पृष्ठभूमि के खिलाफ एक ग्रेस्केल-टिंटेड संस्करण सेट करने के लिए अल्फा मानचित्र का उपयोग करेगा। आप अपनी खुद की कस्टम गतिविधियों के लिए रंगीन छवियां प्रदान नहीं कर सकते हैं। संभवतः यह लोगों को 'आधिकारिक' सेवा आइकन की प्रतिलिपि बनाने और उन्हें अपने उद्देश्यों के लिए बदलने से रोकने के लिए है, यानी वास्तव में कुछ अलग करने के दौरान फेसबुक पर कुछ पोस्ट करने का नाटक करना।

+0

को कस्टमाइज़ कर सकते हैं मुझे डर था कि यही एकमात्र तरीका था। लगभग उतना अच्छा नहीं है। – SeanK

1

आप अंतर्निहित यूआईएक्टिविटी प्रकारों के व्यवहार को ओवरराइड नहीं कर सकते हैं - हालांकि आप अपना खुद का UIActivityItemProvider सबक्लास प्रदान करके प्राप्त डेटा को ओवरराइड कर सकते हैं। इसके लिए आपको – activityViewController:itemForActivityType: ओवरराइड करना होगा, इसलिए जब आप 100% नहीं चाहते हैं तो आप कम से कम अंतर्निहित लोगों को अपनी इच्छानुसार मोड़ सकते हैं।

+0

http://stackoverflow.com/questions/26451583/uiactivityview-controller-behaviour-is-strange –

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

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