Comment créer un button de partage iOS standard?

Les directives d'interface user iOS disent :

Utilisez le button Partager fourni par le système. Les users sont familiers avec la signification et le comportement de ce button, c'est donc une bonne idée de l'utiliser lorsque cela est possible. La principale exception à cette règle est que si votre application ne contient pas de barre d'outils ou de barre de navigation [,] le button Partager ne peut être utilisé que dans une barre d'outils ou une barre de navigation.

OK, mais comment puis-je "utiliser le button Partager fourni par le système"? Une search de la documentation ne révèle rien d'utile.

J'ai compris que je devrais utiliser UIActivityViewController dans ma réponse au button tapé , mais comment créer le button de partage standard en premier lieu?

Le button de partage standard est un UIBarButtonItem (il ne peut donc être placé que dans une barre de navigation ou une barre d'outils). Vous devez créer un "élément du système" ; spécifiquement, un "élément d'action" . L'élément de button de barre "action" est le button Partager.

Voici le code. Je suppose que vous êtes dans ViewController donc self a la propriété navigationItem.

UIBarButtonItem *shareButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(shareAction:)]; self.navigationItem.rightBarButtonItem = shareButton; 

Cela va dans votre viewDidLoad:

 UIBarButtonItem *shareButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(compartir:)]; self.navigationItem.rightBarButtonItem = shareButton; 

Et définissez votre méthode de sélection à appeler en tant qu'action (dans mon cas nommé "compartir"):

 - (void) compartir:(id)sender{ //Si no NSLog(@"shareButton pressed"); NSSsortingng *ssortingngtoshare= @"This is a ssortingng to share"; UIImage *imagetoshare = img; //This is an image to share. NSArray *activityItems = @[ssortingngtoshare, imagetoshare]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypePostToTwitter, UIActivityTypePostToWeibo]; [self presentViewController:activityVC animated:TRUE completion:nil]; } 

Le button Action fourni par le système peut également être entièrement créé avec un constructor d'interface. Pour ce faire, faites simplement glisser l' UIToolbar à votre vue. Puis faites glisser et déposez le UIBarButtonItem dans la barre UIToolbar. À l'étape suivante, select UIBarButtonItem dans la hiérarchie de la vue , accédez à l'inspecteur d'attributes et select en tant qu'élément du système «Action». Terminé!

De plus, il est possible de connecter le UIBarButtonItem à votre class en tant que IBOutlet ou IBAction.

Veuillez noter: j'utilise comme reference un Xcode 7.

Main.storyboard -> Bar Bouton Item -> Inspector -> System Item a choisi "Action" entrez la description de l'image ici

Voici le code pour Swift 3.

 func addShareBarButtonItem() { let shareButton = UIBarButtonItem(barButtonSystemItem: .Action, target: self, action: #selector(MyViewController.shareButtonPressed)) self.navigationItem.rightBarButtonItem = shareButton } func shareButtonPressed() { //Do something now! }