提供了未知的活动项目:(“”)
问题描述:
我使用UIActivityViewController的子类来显示自定义的UIActivities。提供了未知的活动项目:(“<MyClass:somehash>”)
控制器时表示,我得到
Unknown activity items supplied: (
"<MyClass: somehash>"
)
在我的日志
。
MyClass子类NSObject,并通过点击我的UIActivity传递给新的ViewController。
我试图在MyClass上实现协议UIActivityItemSource,但它没有解决问题。
MyClass的目的在阵列[UIActivityViewController INIT]通过如activityItems参数,并且它不应该是一个问题,因为文档仅供说:
数据对象的阵列在其上执行活动。数组中的对象类型是可变的,并且取决于应用程序管理的数据。例如,数据可能包含一个或多个表示当前选定内容的字符串或图像对象。
编辑:
这是我的代码可以共享:
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];
答
你应该继承UIActivity,不UIActivityViewController。然后传入子类applicationActivities:
...
// Create activity view controller
UIActivityViewController* vc = [[UIActivityViewController alloc] initWithActivityItems:@[myDataItem] applicationActivities:@[myActivityAction]];
+0
是的,我正在那样做。我有我自己的UIActivityViewController,我将它传递给我的自定义UIAcitivities和数据对象。唯一的问题是数据对象是“未知”的。 – 2015-02-24 14:16:23
显示您的代码。 – Fogmeister 2015-02-24 13:31:13
已编辑。请立即检查。 – 2015-02-24 15:10:51