情報を共有するために iOS 6 の新しい方法を使用していますUIActivityViewController
。メディア (Facebook、Twitter、またはメール) に応じて共有データを選択するには、View Controller でUIActivityItemSource
プロトコルを次のように実装します。
- (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";
}
文字列の単純な NSString を返すときactivityViewController:itemForActivityType:
、 my でよく使用されますが、 !UIActivityViewController
を使用する方法が見つかりません。Array
Apple Documentation によると、可能なはずです:
このメソッドは、アクティビティ オブジェクトによって処理される実際のデータ オブジェクトを返します。 Apple ドキュメント
誰かUIActivityItemSource
が配列でこのプロトコルを使用したことがありますか、またはそれを行うための完全なチュートリアルがありますか?
注:コンソールでもこのエラーが発生しました。役立つ場合があります...
Launch Services: 不明なアプリ識別子 com.apple.mobilemail の登録に失敗しました
Launch Services: アプリ識別子 com.apple.mobilemail が見つかりません