2015-08-11 8 views
20

Mi piacerebbe replicare questo comportamento (vedi immagine sotto) e condividere i contenuti dalla mia app usando questo tipo di foglio di azione.Xcode: condivisione del contenuto tramite Action Sheet

enter image description here

La domanda è:

Questa è davvero un foglio d'azione? Non riesco a trovare nessun tutorial per iOS 7 o 8. Non so come procedere.

Le opzioni di condivisione dipendono dalle configurazioni dell'utente?

I suggerimenti sarebbero apprezzati.

+2

sua 'UIActivityViewController' ... non un actionsheet –

+0

Come possiamo aggiungere Instagram in UIActivityViewController? –

risposta

40

Non è in UIActionSheet è in UIActivityController, che è la funzione predefinita in iOS.

Objective-C

- (void)presentActivityController:(UIActivityViewController *)controller { 

    // for iPad: make the presentation a Popover 
    controller.modalPresentationStyle = UIModalPresentationPopover; 
    [self presentViewController:controller animated:YES completion:nil]; 

    UIPopoverPresentationController *popController = [controller popoverPresentationController]; 
    popController.permittedArrowDirections = UIPopoverArrowDirectionAny; 
    popController.barButtonItem = self.navigationItem.leftBarButtonItem; 

    // access the completion handler 
    controller.completionWithItemsHandler = ^(NSString *activityType, 
               BOOL completed, 
               NSArray *returnedItems, 
               NSError *error){ 
     // react to the completion 
     if (completed) { 
      // user shared an item 
      NSLog(@"We used activity type%@", activityType); 
     } else { 
      // user cancelled 
      NSLog(@"We didn't want to share anything after all."); 
     } 

     if (error) { 
      NSLog(@"An Error occured: %@, %@", error.localizedDescription, error.localizedFailureReason); 
     } 
    }; 
} 

-(void)sendMessage { 
    //create a message 
    NSString *theMessage = @"Some text we're sharing with an activity controller"; 
    NSArray *items = @[theMessage]; 

    // build an activity view controller 
    UIActivityViewController *controller = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:nil]; 

    // and present it 
    [self presentActivityController:controller]; 
} 

Swift

let shareText = "Hello, world!" 

if let image = UIImage(named: "myImage") { 
    let vc = UIActivityViewController(activityItems: [shareText, image], applicationActivities: []) 
    presentViewController(vc, animated: true, completion: nil) 
} 

Prova questi link per esercitazioni

  1. http://nshipster.com/uiactivityviewcontroller/

  2. http://www.codingexplorer.com/add-sharing-to-your-app-via-uiactivityviewcontroller/

  3. http://roadfiresoftware.com/2014/02/how-to-add-facebook-and-twitter-sharing-to-an-ios-app/

Swift

https://www.hackingwithswift.com/example-code/uikit/how-to-share-content-with-uiactivityviewcontroller

-1

Basta passare attraverso questo link per la lingua veloce:

Basic example for sharing text or image with UIActivityViewController in Swift

questo è il risultato:

enter image description here

+0

Le sole risposte di collegamento non sono accettabili. Inoltre ... questa domanda ha già una risposta accettata e ha diversi anni. – Fogmeister

+0

Questo è per la lingua veloce e come da regolamento questa risposta ho già dato così perché dovrei dare ancora una volta o digitare tutto il contenuto. Controlla prima cosa ho dato. –

+0

Ho controllato.Hai collegato alla stessa identica risposta su un'altra domanda. In tal caso sarebbe meglio chiuderne uno come duplicato dell'altro. Per aggiornare a swift sarebbe meglio modificare la risposta accettata per aggiungere Swift ad essa. – Fogmeister