Ich benutze iOS 6 neue Möglichkeit, Informationen zu teilen: UIActivityViewController
. Um die gemeinsam genutzten Daten auswählen, die auf den Medien abhängig (Facebook, Twitter oder E-Mail) mein View-Controller die UIActivityItemSource
Protokoll wie folgt implementieren:UIActivityItemSource Protocole Set komplexes Objekt
- (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";
}
Wenn ich eine einfache NSString für activityViewController:itemForActivityType:
der String Rückkehr ist gut, die von meiner UIActivityViewController
, aber ich kann keinen Weg finden, eine Array
zu verwenden!
Laut Apple Dokumentation sollte es möglich sein:
Diese Methode gibt die tatsächlichen Objektdaten durch ein Aktivitätsobjekt zu beaufschlagbar Apple documentation
Hat jemand jemals dieses UIActivityItemSource
Protokoll verwenden, um mit Arrays, oder gibt es ein Tutorial, um das zu tun?
Hinweis: Ich habe diesen Fehler auch auf der Konsole, kann es helfen ...
Launch Services: Die Registrierung unbekannt App Kennung com.apple.mobilemail
Launch Services fehlgeschlagen: nicht gefunden App Kennung com.apple.mobilemail
Haben Sie herausgefunden, was diese Nachricht über com.apple.mobilemail in der Konsole ist? –
Der Konsolenfehler tritt nur im Simulator auf, wo die Mail-App einfach nicht existiert. Es kann ignoriert werden. – Emil
@Tommecpe: Wie hast du es behoben? – BaSha