0

UIActivityViewController のサブクラスを使用して、カスタム UIActivities を表示しています。

コントローラーが表示されているとき、私は得ています

Unknown activity items supplied: (
    "<MyClass: somehash>"
)

私のログで。

MyClass は NSObject をサブクラス化し、UIActivity のタップによって呼び出される新しい ViewController に渡されます。

MyClass にプロトコル UIActivityItemSource を実装しようとしましたが、問題は解決しませんでした。

MyClass オブジェクトは配列で [UIActivityViewController init] にactivityItemsパラメーターとして渡されますが、ドキュメントには次のように記載されているだけなので、問題になることはありません。

アクティビティを実行するデータ オブジェクトの配列。配列内のオブジェクトのタイプは可変であり、アプリケーションが管理するデータに依存します。たとえば、データは、現在選択されているコンテンツを表す 1 つ以上の文字列または画像オブジェクトで構成される場合があります。

編集:

これは私が共有できるコードです:

MyClass *myDataObject = some data...

...

NSMutableArray *activityItems = [NSMutableArray arrayWithCapacity:3];
[activityItems addObject:NSLocalizedString(@"default_activity_message", nil)];
[activityItems addObject:someURL];
[activityItems addObject:myDataObject];

NSMutableArray *customActivities = [NSMutableArray arrayWithCapacity:1];
[customActivities addObject:[MyActivity new]];

MyActivityViewController *activityViewController = 
    [[MyActivityViewController alloc] initWithActivityItems:activityItems 
                                      applicationActivities:customActivities];

[self presentViewController:activityViewController animated:YES completion:nil];
4

1 に答える 1

0

UIActivityViewControllerではなく、 UIActivityをサブクラス化する必要があります。そして、サブクラスを渡しapplicationActivities:ます...

// Create activity view controller
UIActivityViewController* vc = [[UIActivityViewController alloc] initWithActivityItems:@[myDataItem] applicationActivities:@[myActivityAction]];
于 2015-02-24T13:40:27.127 に答える