通过AirDrop发送PDF时的命名文件

时间:2013-10-09 16:21:19

标签: ios objective-c cocoa-touch pdf

如果在iOS 7中通过AirDrop发送从应用程序生成的PDF,是否有任何想法如何设置文档的标题?

对SO和文档的常规搜索没有回答我的问题

 NSString *fileName = [NSString stringWithFormat:@"userCert_%@",self.certificate.reference];

 NSData *cert = self.pdfData;

     UIActivityViewController *activityCtr = [[UIActivityViewController alloc] initWithActivityItems:@[cert]
                                                                              applicationActivities:nil];


 NSMutableArray *excludedActivities = [self iOS6Activities].mutableCopy;
    [excludedActivities addObject:UIActivityTypeAddToReadingList];
    [excludedActivities addObject:UIActivityTypePostToFlickr];
    [excludedActivities addObject:UIActivityTypePostToTencentWeibo];
    [excludedActivities addObject:UIActivityTypePostToVimeo];
    [activityCtr setExcludedActivityTypes:excludedActivities];

    [self presentViewController:activityCtr
                       animated:YES
                     completion:nil];

1 个答案:

答案 0 :(得分:6)

如果要共享NSData,则必须将其包装在符合UIActivityItemSource协议的对象中,并实现可选的协议方法activityViewController:dataTypeIdentifierForActivityType:。然而,这并不能解决指定文件名的问题,因为在这种情况下,系统将基于UTI和一些散列生成一个文件名。

如果将数据写入文件并共享NSURL fileURL而不是NSData,则将使用您为该文件提供的文件名,并且是接收设备上的警报中显示的文件名。即使在这种情况下,也可能值得将URL包装在符合UIActivityItemSource的对象中,因为它可以使用可选的协议方法activityViewController:thumbnailImageForActivityType:suggestedSize:来提供诸如预览图像之类的内容。