0

UIActivityViewControllerを使用してアプリの画像を共有しようとしています。これはソースコードです:

UIImage *sourceImage = [[UIImage alloc] initWithContentsOfFile:[[self currentMedia] path]];
NSArray *activityItems = @[sourceImage];
UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
avc.excludedActivityTypes = [NSArray arrayWithObjects:UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, nil];
[self presentViewController:avc animated:YES completion:nil];
[avc release];
[sourceImage release];

1つの問題を除いて、すべて正常に機能します。サービスピッカーにサービス名(Eメール、Twitter、Facebookなど)が表示されません。以下のスクリーンショットを見てください。

ここに画像の説明を入力してください

私は何か間違ったことをしていますか?

4

3 に答える 3

1

私はARCを使用していますが、そのような問題はありません。UIActivityViewController がマルチスレッドとブロックにほとんど依存していない限り、一部のオブジェクトの寿命に影響を与える可能性があります。したがって、Appleが推奨するようにARCに切り替えるか、少なくともUIActivityViewController.

于 2012-10-13T21:41:59.523 に答える
0

nilアクティビティ タイプを渡し、除外タイプを指定すると、何も表示されません。

ただしnil、最初のパラメーターのみを渡すと、利用可能なすべての組み込みサービス タイプが表示されます。

この API を思い通りに動作させるのにまだ少し苦労していますが、それは私が見つけた 1 つのことです。

于 2012-10-12T19:21:56.987 に答える
0

この目的のためにUIActivityクラスを使用できます。UIActivityViewControllerアクティビティ オブジェクトは、ユーザーにサービスを提供するオブジェクトと組み合わせて使用​​されます。

クラスactivityTitleのメソッドを調べて、サービスを説明する文字列を返します。UIActivity

これがサンプルプロジェクトです。

お役に立てば幸いです。

于 2012-10-13T05:46:11.190 に答える