Sto usando iOS 6 nuovo modo di condividere informazioni: UIActivityViewController
. Per selezionare i dati condivisi a seconda dei media (Facebook, Twitter o e-mail) il mio controller della vista implementare il protocollo UIActivityItemSource
come segue:UIActivityItemSource Protocole set complex object
- (IBAction)onShareButton:(UIButton *)sender
{
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[self] applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypeMessage, UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard, UIActivityTypeMessage, UIActivityTypePostToWeibo, UIActivityTypePrint, UIActivityTypeSaveToCameraRoll];
[self presentViewController:activityViewController animated:YES completion:^{}];
}
#pragma mark - UIActivityItemSource Protocol
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
if ([activityType isEqualToString:UIActivityTypePostToFacebook]) {
NSArray *items = @[@"message facebook", [NSURL URLWithString:@"http://www.myUrlFacebook.com"]];
return items;
} else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) {
NSArray *items = @[@"message twitter", [NSURL URLWithString:@"http://www.myUrlTwitter.com"]];
return items;
} else if ([activityType isEqualToString:UIActivityTypeMail]) {
NSArray *items = @[@"message mail", [NSURL URLWithString:@"http://www.myUrlMail.com"]];
return items;
}
NSArray *items = @[@"Not a proper Activity", [NSURL URLWithString:@"http://www.myUrlMail.com"]];
return items;
}
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
return @"PlaceHolder";
}
Quando sto tornando un semplice NSString per activityViewController:itemForActivityType:
la stringa è ben utilizzato dal mio UIActivityViewController
, ma non riesco a trovare un modo per utilizzare un Array
!
Secondo Apple documentazione dovrebbe essere possibile:
Questo metodo restituisce l'oggetto dati effettivi per essere agito da un oggetto un'attività Apple documentation
Qualcuno mai utilizzare questo UIActivityItemSource
protocollo con Array, o c'è un tutorial completo per farlo?
Nota: Ho anche ottenuto questo errore sulla console, può essere utile ...
Launch Services: Registrazione sconosciuto identificatore app com.apple.mobilemail fallito
Launch Services: Impossibile trovare App identificatore com.apple.mobilemail
Hai scoperto qual è il messaggio su com.apple.mobilemail nella console? –
L'errore della console si verifica solo nel simulatore, dove l'app di posta semplicemente non esiste. Può essere ignorato. – Emil
@Tommecpe: come lo hai risolto? – BaSha