Comment créer un bouton de partage iOS standard?
Les lignes directrices de L'Interface humaine iOS disent :
Utilisez le bouton de partage fourni par le système. les Utilisateurs sont familiers avec le sens et le comportement de ce bouton, c'est donc une bonne idée de l'utiliser lorsque cela est possible. La principale exception à cette règle est si votre application ne contient pas de barre d'outils ou de barre de navigation[, car] le bouton Partager ne peut être utilisé que dans une barre d'outils ou une barre de navigation.
OK, mais comment puis-je "utiliser le bouton de partage fourni par le système"? une recherche du la documentation n'a rien d'utile.
J'ai compris que je devrais utiliser UIActivityViewController dans ma réponse au bouton en cours d'écoute , mais comment créer le bouton de partage standard en premier lieu?
7 réponses
Le bouton de partage standard est un UIBarButtonItem (donc il ne peut aller que sur une barre de navigation ou une barre d'outils). Vous devez Créer un "élément Système" ; plus précisément, un "élément d'action" . L'élément de bouton de la barre "action" est le bouton Partager.
Voici le code. Je suppose que vous êtes à L'intérieur de 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");
NSString *stringtoshare= @"This is a string to share";
UIImage *imagetoshare = img; //This is an image to share.
NSArray *activityItems = @[stringtoshare, imagetoshare];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypePostToTwitter, UIActivityTypePostToWeibo];
[self presentViewController:activityVC animated:YES completion:nil];
}
Principal.storyboard - > élément de bouton de barre - > Inspecteur - > élément Système a choisi "d'Action"
Le bouton d'Action fourni par le système peut également être entièrement créé avec un générateur D'Interface. Pour ce faire, il suffit de glisser-déposer le UIToolbar à votre vue. Que faites glisser et déposez le UIBarButtonItem dans le UIToolbar. Comme étape suivante sélectionnez dans la hiérarchie de vue le UIBarButtonItem , Allez à L'Inspecteur D'attributs et sélectionnez comme élément Système Le "Action". fait!
En outre, il est possible de connecter le UIBarButtonItem avec votre classe comme IBOutlet ou IBAction.
Veuillez noter: j'utilise comme référence un Xcode 7.
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!
}
Seulement mes deux cents pour swift 4 / Xcode 10:
1) l'action a changé de caractère initial:
let shareButton = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(shareButtonPressed))
2) ajouter @obj:
@objc func shareButtonPressed() {
//Do something now!
}