我终于找到了一个比我面临同样问题的人.
UIActivityViewController根据所选活动自定义文本
我想使用UIActivityViewController的活动自定义内容共享.好的答案如下:
"不是将文本字符串传递给initWithActivityItems调用,而是传入您自己的UIActivityItemProvider类子类,当您实现itemForActivityType方法时,它将提供共享服务作为'activityType'参数.
然后,您可以从此方法返回自定义内容."
我理解技巧,但我没有办法做到这一点......
我这样做是一个子类:
@interface SharingItems : UIActivityItemProvider
@implementation SharingItems
-(id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType
{
// Here depending on the activityType i want to share NSString or UIImage
}
@end
Run Code Online (Sandbox Code Playgroud)
但我不知道在我原来的viewController中现在要做什么:
-(void)actionSheet
{
if ([[UIActivityViewController class] respondsToSelector:@selector(alloc)])
{
__block NSString *imgName = [[NSString alloc] initWithFormat:@"%@", _sharingUrl];
NSArray *activityItems = [NSArray arrayWithObjects:imgName, nil];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
__block NSString *chan = [[NSString alloc] initWithFormat:@"%@", _channel];
[activityController setCompletionHandler:^(NSString* activityType, BOOL completed)
{ …Run Code Online (Sandbox Code Playgroud)