IOS 7をサポートするほとんどのiOSアプリケーションで共有オプションのこの形式(下の画像を参照)を見てきました。下の画像に示すように、この共有オプションを実装するためのデフォルトコード/フレームワークはありますか?
探しているのはUIActivityViewController
です。
あなたは一般的な質問をしたので、 documentation へのリンクを提供する以上のことはできません
受け入れられた答えに加えて、小さなサンプルコード
- (void)shareText:(NSString *)text andImage:(UIImage *)image andUrl:(NSURL *)url
{
NSMutableArray *sharingItems = [NSMutableArray new];
if (text) {
[sharingItems addObject:text];
}
if (image) {
[sharingItems addObject:image];
}
if (url) {
[sharingItems addObject:url];
}
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
}
shareText
を呼び出し、共有したくないものはnil
に残します。
[self shareText:@"Hello world" andImage:nil andUrl:nil];
投稿した画像のコントローラーはUIActivitiyViewControllerです これはリンクです クラスのドキュメントへ
いくつかの良いサンプルコード: 利用可能な共有オプションでデフォルトのiOS 6共有アクションシートを表示する方法?
この質問はiOS 7に固有のものであり、コード例ではiOS 6を指定していますが、AFAICTは非常によく似ているため、サンプルコードは私と同じように役立つかもしれません。
UIActivityViewController
は探しているものです。
アイテムまたはアプリケーションのいずれかを指定できます
UIActivityViewController *actCont = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
デフォルトの共有には次のコードを使用します。要件に応じて、shareItems
配列にさらにアイテムを追加できます。
NSMutableArray *shareItems = [[NSMutableArray alloc] initWithObjects:
@"Hello",
[UIImage imageNamed:@"your_image.png"],
@"http://google.com/", nil];
[self shareItemToOtherApp:shareItems];
次の方法は、デフォルトでテキストまたは画像を他のアプリに共有するためのものです:
-(void)shareItemToOtherApp:(NSMutableArray *)shareItems{
UIActivityViewController *shareController = [[UIActivityViewController alloc]
initWithActivityItems: shareItems applicationActivities :nil];
[shareController setValue:@"Sharing" forKey:@"subject"];
shareController.excludedActivityTypes = @[UIActivityTypePostToWeibo, UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeSaveToCameraRoll];
shareController.completionHandler = ^(NSString *activityType, BOOL completed)
{
//NSLog(@" activityType: %@", activityType);
//NSLog(@" completed: %i", completed);
};
[self presentViewController: shareController animated: YES completion: nil];
}
カスタム共有シートを作成する場合は、次のコードを使用します。このためには、<Social/Social.h>
フレームワークをインポートする必要があります。
-(void)shareOnFacebook:(id)sender {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
SLComposeViewController *faceSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// NSLog(@"%@", messageField.text);//This returns the appropriate string
[faceSheet setInitialText:@"Hellooooooo"];
//The facebook VC appears, but initial text is not set to messageField.text
[self presentViewController:faceSheet animated:YES completion:nil];
}
else
{
NSLog(@"Please first install Application and login in Facebook");
}
}
-(void)shareOnTwitter:(id)sender {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
SLComposeViewController *tweetSheet = [SLComposeViewController
composeViewControllerForServiceType:SLServiceTypeTwitter];
[tweetSheet setInitialText:@"Hello"];
[self presentViewController:tweetSheet animated:YES completion:nil];
}
else{
NSLog(@"Please first install Application and login in Twitter");
}
}
希望、これはあなたが探しているものです。心配事は私に戻ります。 :)