उपलब्ध विकल्पों के साथ डिफ़ॉल्ट iOS 6 शेयर एक्शन शीट कैसे प्रदर्शित करें?


97

कुछ ऐप साझा करने के विकल्पों के साथ iOS 6 में एक डिफ़ॉल्ट एक्शन शीट दिखाते हैं।

सोशल फ्रेमवर्क में केवल दो वर्ग हैं, एक कंपोजिंग के लिए और दूसरा अनुरोध के लिए।

हालाँकि मैंने पाया कि SLComposeViewController के साथ किसी विशेष सेवा के लिए रचना करने के बारे में है और यह दिखाने से पहले कि सेवा उपलब्ध होने पर मुझे हाथ से प्रश्न करना होगा। और फिर मुझे भी अपना एक्शन शीट खुद के आइकॉन के साथ बनाना होगा।

उन ऐप्स को iOS 6 में यह डिफ़ॉल्ट शेयर विकल्प एक्शन शीट कैसे दिखाते हैं? या वे एक खुले स्रोत ढांचे का उपयोग कर रहे हैं?


मैं वीचैट, वीबो, क्यूक जैसे कस्टम आइकन के साथ शेयर शीट खोलना चाहता हूं और इसकी कार्यक्षमता को एकीकृत करना चाहता हूं, मैं यह कैसे कर सकता हूं?
रवि ओझा

बस इस लिंक को भी देखें .. stackoverflow.com/a/35267035/3908884
मिलो तोशी

जवाबों:


223

UIActivityViewController अन्य जवाब में कहा गया है इस तुच्छ बना देता है। आपको बस उस पाठ / चित्र / URL को निर्दिष्ट करना है जिसे आप गतिविधि दृश्य नियंत्रक को सामान्य रूप से साझा और प्रस्तुत करना चाहते हैं और iOS स्वचालित रूप से सभी लागू साझाकरण सेवाओं को प्रदर्शित करेगा। उदाहरण:

उद्देश्य सी

- (void)shareText:(NSString *)text andImage:(UIImage *)image andUrl:(URL *)url
{
    NSMutableArray *sharingItems = [NSMutableArray new];

    if (text) {
        [sharingItems addObject:text];
    }
    if (image) {
        [sharingItems addObject:image];
    }
    if (url) {
        [sharingItems addObject:url];
    }

    UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];
    [self presentViewController:activityController animated:YES completion:nil];
}

तीव्र

func share(sharingText: String?, sharingImage: UIImage?, sharingURL: URL?) {
    let sharingItems:[AnyObject?] = [
                                        sharingText as AnyObject,
                                        sharingImage as AnyObject,
                                        sharingURL as AnyObject
                                    ] 
    let activityViewController = UIActivityViewController(activityItems: sharingItems.compactMap({$0}), applicationActivities: nil)
    if UIDevice.current.userInterfaceIdiom == .pad {
        activityViewController.popoverPresentationController?.sourceView = view
    }
    present(activityViewController, animated: true, completion: nil)
}

6
स्विफ्ट संस्करण के लिए अच्छा संपादन। मैं एक। = आइटम के लिए .append (आइटम) को बदलूंगा। अधिक स्विफ्ट-वाई दिखता है
इग्नासियो इंग्लेसी

2
स्विफ्ट के नवीनतम संस्करण में, प्रतिस्थापित AnyObject[]()करें[AnyObject]()
रूबेन मार्टिनेज जूनियर।

5
इसकी कार्यप्रणाली, सेटिंग्स (फेसबुक / ट्विटर) में संबंधित खातों में लॉग इन करने के बाद, लेकिन फ़ोटो ऐप / नोट्स ऐप में, उपयोगकर्ता के लॉग इन नहीं होने पर भी विकल्प उपलब्ध हैं, क्या आप कृपया समझा सकते हैं, ऐसा क्यों है? या कुछ और वर्कअराउंड है?
जलदीप कात्रे

4
मैं iPad पर iOS 8 समर्थन के लिए एक संपादन जोड़ दिया है - आप भी विन्यस्त करने की जरूरत UIActivityViewControllerहै UIPopoverControllerया उस पर दुर्घटना जाएगा present…। मेरे पास अब तक संपादित किए गए तीन में से दो अस्वीकरण हैं, इसलिए यह मानकर कि इसे अस्वीकार कर दिया गया है, शायद आप देख सकते हैं कि क्या आप खुद को जोड़ना चाहते हैं। या नहीं :-)
Benjohn

ओह, संपादन इस उत्तर का हवाला देता है जो सभी को समझाता है।
बेन्जोन

39

इस का उपयोग करने के लिए जोड़ें UIActivityViewController

-(IBAction)shareButtonPressed:(id)sender {

    NSLog(@"shareButton pressed");

    NSString *texttoshare = _txt; //this is your text string to share
    UIImage *imagetoshare = _img; //this is your image to share
    NSArray *activityItems = @[texttoshare, imagetoshare];    
    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint];
    [self presentViewController:activityVC animated:TRUE completion:nil];
}

2
जब से आप बाहर दिखाते हैं, तब से मेरे लिए पसंदीदा उत्तर
जोस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.