Objective c UIImage仅适用于所选应用程序活动,NSString适用于所有应用程序活动
我正在使用UIActivityViewController来共享NSString和UIImage,但我不想与iMessage和e-mail共享UIImageObjective c UIImage仅适用于所选应用程序活动,NSString适用于所有应用程序活动,objective-c,uiimage,uiactivityviewcontroller,uiactivity,Objective C,Uiimage,Uiactivityviewcontroller,Uiactivity,我正在使用UIActivityViewController来共享NSString和UIImage,但我不想与iMessage和e-mail共享UIImage 如何为UIImage创建这样一个自定义UIActivity,并为所有人保留NSString?创建UIActivityViewController时,会传递一组活动项 在该数组中传递的对象可以是采用 如果您发送UIImage,为什么不创建一个“ImageItemProvider”对象,然后实现您自己的方法,如果您不想通过iMessage或电子
如何为UIImage创建这样一个自定义UIActivity,并为所有人保留NSString?创建UIActivityViewController时,会传递一组活动项 在该数组中传递的对象可以是采用 如果您发送UIImage,为什么不创建一个“
ImageItemProvider
”对象,然后实现您自己的方法,如果您不想通过iMessage或电子邮件共享该图像,该方法将返回“nil
”
例如:
我是根据这个答案来回答的。这是一个想法,但UIImage是动态的(捕获视图),因此如果我创建一个新对象,UIActivityViewController将加载太长时间。我认为,最好的方法只是在主视图中编写代码,但我现在不知道如何:(如果生成要共享的内容可能需要一段时间,您可能需要考虑使用UIActivityItemProvider。
//- Returns the data object to be acted upon. (required)
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType
{
if ([activityType isEqualToString:UIActivityTypeMail]) {
return nil;
}
if ([activityType isEqualToString:UIActivityTypeMessage]) {
return nil;
}
return [UIImage imageNamed:@"the image you wanted returned"];
}