我正在使用UIActivityViewController的子类来显示自定义UIActivities .
当Controller正在显示时,我正在接受
Unknown activity items supplied: (
"<MyClass: somehash>"
)
在我的日志中 .
MyClass子类NSObject,并通过点击我的UIActivity传递给新的ViewController .
我试图在MyClass上实现协议UIActivityItemSource,但它没有解决问题 .
MyClass对象作为activityItems参数在数组中传递给[UIActivityViewController init],它应该不是问题,因为文档只说:
要在其上执行活动的数据对象数组 . 数组中的对象类型是可变的,取决于应用程序管理的数据 . 例如,数据可能包含一个或多个表示当前所选内容的字符串或图像对象 .
Edit:
这是我可以分享的代码:
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];
1 回答
你应该子类UIActivity,而不是UIActivityViewController . 然后传入
applicationActivities:
中的子类...