Con iOS 6 Apple ha introdotto UIActivityViewController, un view controller per condividere contenuti con vari servizi (interni al sistema e non). I servizi vanno dal mandare un SMS o una email, copiare il contenuto, postare su Twitter, Facebook e Weibo (la versione Cinese di Twitter).
In questo tutorial andremo a vedere come inviare il contenuto desiderato ai vari servizi specifici di iOS tramite l’UIActivityViewController view controller. Ti mostrerò inoltre come personalizzare l’elenco dei servizi che vengono visualizzati nel controller.
Crea UIActivityViewController
Per mostrare un semplice view controller:
[code lang=”obj-c”]
// Create il contenuto
NSString *message = @"La fattoria";
UIImage *image = [UIImage imageNamed:@"Farm.jpg"];
NSArray *arrayOfActivityItems = [NSArray arrayWithObjects:message, image, nil];
// mostra il view controller
UIActivityViewController *activityVC = [[[UIActivityViewController alloc]
initWithActivityItems: arrayOfActivityItems applicationActivities:nil] autorelease];
[/code]
Il view controller si mostra così nel simulatore.
Se preferisci personalizzare l’elenco dei servizi visualizzati, è possibile specificare un array di stringhe, dove ogni stringa è un ActivityType che rappresenta un servizio che non si vuole mostrare nel controller:
[code lang=”obj-c”]activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypeMessage, UIActivityTypeSaveToCameraRoll, UIActivityTypePrint, UIActivityTypePostToWeibo, UIActivityTypeCopyToPasteboard];[/code]
Con questo cambiamento il view controller si mostra in questo modo:
In un post futuro vedremo come scrivere e sviluppare classi di servizi ad hoc per la nostra applicazione da far utilizzare ad applicazioni terze.