Hoe de standaard iOS 6-actieblad met beschikbare aandelenopties weergeven?

Sommige apps tonen een standaard actievel in iOS 6 met het delen van opties.

sociaal framework heeft slechts twee klassen, één voor componeren en één voor aanvraag.

Wat ik heb gevonden, gaat echter over componeren voor een bepaalde service met SlcomposeviewController en voordat ik dit laat zien, moet ik met de hand vragen als de service beschikbaar is. En dan moet ik ook mijn eigen actieblad maken met eigen pictogrammen.

Hoe tonen die apps dit standaard aandelenopties actieblad in iOS 6? Of gebruiken ze een open source framework?


Antwoord 1, Autoriteit 100%

De uiactiviteitViewController vermeld in het andere antwoord maakt deze triviale. Het enige wat u hoeft te doen, is de tekst / afbeelding / URL opgeven die u wilt delen en presenteert de Activity View Controller modaal en iOS geeft automatisch alle toepasselijke delen van delen weer. Voorbeelden:

Doelstelling-C

- (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];
}

SWIFT

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)
}

Antwoord 2, Autoriteit 18%

Voeg dit toe om de UIActivityViewControllerte gebruiken.

-(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];
}

Other episodes