大佬教程收集整理的这篇文章主要介绍了UIDocumentInteractionController停止工作iOS 8,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
-(void)presentDocumenTinteractionController{ self.docController = [UIDocumenTinteractionController interactionControllerWithURL:self.URL]; self.docController.delegate = self; [_docController setUTI:@"com.adobe.pdf"]; [_docController presentOptionsMenuFromBarButtonItem:self.activityBarButton animated:YES]; }
在iOS 8之前,这段代码运行良好.向用户呈现了诸如打印,复印和电子邮件之类的项目列表以供选择.升级到iOS 8 / XCode 6之后,我收到了这个运行时错误(它没有崩溃应用程序):
UnkNown activity items supplied: ( "<UITextViewPrintFormatter: 0x7f908ba53ca0>" )
我怎么解决这个问题?
最小解决方案:
如果你想做最少的工作,你甚至不需要将你的PDF读入NSData,使用NSURL作为活动项目,iOS似乎知道该怎么做:
- (void)share:(id)sender { UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[self.URL] applicationActivities:nil]; if ([activity respondsToSELEctor:@SELEctor(popoverPresentationController)]) { activity.popoverPresentationController.barButtonItem = <# BAR BUTTON ITEM #>; } [self presentViewController:activity animated:YES completion:NULL]; }
原答案:
使您的视图控制器遵循UIActivityItemsource协议,然后您可以执行以下操作:
- (void)share:(id)sender { self.pdfData = [NSData dataWithContentsOfURL:self.URL]; UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[self] applicationActivities:nil]; if ([activity respondsToSELEctor:@SELEctor(popoverPresentationController)]) { activity.popoverPresentationController.barButtonItem = <# BAR BUTTON ITEM #>; } [self presentViewController:activity animated:YES completion:NULL]; }
如果您有PDF文件,则遵守协议相对简单.您当然可以优化并返回较小的NSData甚至是预览图像,但最低限度地执行此操作:
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController { return _pdfData; } - (id)activityViewController:(UIActivityViewController *)activityViewController itemFOractivityType:(NSString *)activityType { return _pdfData; } - (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectFOractivityType:(NSString *)activityType { return self.title; } - (NSString *)activityViewController:(UIActivityViewController *)activityViewController dataTypEIDentifierFOractivityType:(NSString *)activityType { return @"com.adobe.pdf"; }
以上是大佬教程为你收集整理的UIDocumentInteractionController停止工作iOS 8全部内容,希望文章能够帮你解决UIDocumentInteractionController停止工作iOS 8所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。