我正在使用UIActivityViewController
和UIActivityItemProvider
的自定义子类。除了执行以下序列之外,我提供的每个UIActivityType
我的提供商都可以正常工作:
UIActivityViewController
错误的行为是我有一个提供NSString
个实例的文本提供程序,而这些实例并没有出现在电子邮件的主题和正文中。
预期的行为是邮件撰写对话框应包含文本提供者提供的主题和正文。
执行此序列时,我在控制台中收到以下警告:
2014-03-27 18:35:09.065 TestApp [1347:60b]警告 - UIActivityItemProvider< MyActivityItemProvider:0x170296620>忽略(复制,执行或完成)
2014-03-27 18:35:09.065 TestApp [1347:60b]警告 - UIActivityItemProvider< TestActivityItemProvider:0x170480a00>忽略(复制,执行或完成)
2014-03-27 18:35:09.065 TestApp [1347:60b]警告 - UIActivityItemProvider< WonderfulActivityItemProvider:0x1704b7760>忽略(复制,执行或完成)
每个警告对应于我提供的UIActivityItemProvider
之一。
在这些提供程序中,- (id)item
方法以这种方式实现:
- (id)item
{
if ([self.activityType isEqualToString:UIActivityTypeMail]) {
return @"MyMailString";
}
return @""; // placeholder item
}
通过这种实现,我能够创建一个能够为Facebook,Twitter,Mail等提供不同字符串的提供商。
通过AirDrop共享时,我共享一个没有任何文本的pdf文件。由于AirDrop的共享并未关闭UIActivityViewController
,因此所有其他«活动»在AirDrop共享后应该正常工作。谢谢你的帮助!