2014-08-27 74 views
10

我已经使用UIDocumentInteractionController共享文件,但它在iOS 8 beta 5中25秒后打开菜单选项,并在iOS 7.1中正常工作。UIDocumentInteractionController需要很长时间来显示选项

我已经验证了我粘贴了以下

Errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo=0x79bd5ef0 {NSLocalizedDescription=query cancelled} 
2014-08-27 15:02:05.634 Localwire[82067:1364165] Unknown activity items supplied: (
     { 
     "com.microsoft.excel.xls" = <d0cf11e0 a1b11ae1 00000000 00000000 00000000 00000000 3e000300 feff0900 06000000 00000000 00000000 10000000 01000000 00000000 00100000 cb070000 01000000 feffffff 00000000 00000000 62000000 e3000000 64010000 e5010000 66020000 e7020000 68030000 e9030000 6a040000 eb040000 6c050000 ed050000 6e060000 ef060000 70070000 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 

林不知道有什么问题日志。

+0

我有同样的问题使用UIActivityViewController来呈现共享菜单。你有没有找到任何解决方案? – mrdziuban 2014-08-28 04:15:19

+0

我有同样的问题问题与一些奇特的视频格式,使用UIDocumentInteractionController的pdf和doc文件。在我的情况下,我得到记忆警告,我目前找不到解决方案。听说UIActivityViewController具有相同的问题很不好。 – 2014-09-01 06:29:45

+1

@ user2163024我找不到任何解决方案。我想在UiDocument预览控制器中打开共享工作正常的文档 – Prashanth 2014-09-01 10:11:36

回答

2

我已经使用UIActivityViewController这没有出现任何问题。这个错误仍然存​​在于iOS 8发布版本

所以我打算用UIActivityViewController修复。

我已经使用TYOpenInAppActivity显示在UIActivityViewController

NSURL *URL = [NSURL fileURLWithPath:filePath]; 
TTOpenInAppActivity *openInAppActivity = [[TTOpenInAppActivity alloc] initWithView:self.view andBarButtonItem:barButton]; 
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[URL] applicationActivities:@[openInAppActivity]]; 
    // Create pop up 
    self.activityPopoverController = [[UIPopoverController alloc] initWithContentViewController:activityViewController]; 
    // Store reference to superview (UIPopoverController) to allow dismissal 
    openInAppActivity.superViewController = self.activityPopoverController; 
    // Show UIActivityViewController in popup 
    [self.activityPopoverController presentPopoverFromRect:((UIButton *)sender).frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

的第三方应用程序,您可以在下列链接TTOpenInAppActivity控制器。

https://github.com/honkmaster/TTOpenInAppActivity

+0

发布您的代码请 – 2014-11-12 13:35:44

+1

您是否尝试用UIActivityViewController打开PDF文件? – 2014-11-12 15:06:19

+0

我试过了。还将自定义页面渲染器传递给activityItems。这将带来错误“未知的活动项目”,虽然处理正确 – Stas 2014-11-14 12:08:52

1

我的解决方法到目前为止使用presentOpenInMenuFromRect而不是presentOptionsMenuFromRect,这将显示较少的项目,但至少它不会导致内存问题。 QuickLook选项似乎在iOS 8 beta 5下也是buggy,除了电影内存问题之外,pdf快速查看也无法正常工作。

+0

它没有为我工作....而不是那个UIAcitivityController工作,... – Prashanth 2014-09-11 17:35:58

+0

presentOpenInMenuFromRect的问题是它不显示空投,邮件和iMessage选项......我需要,所以我已经使用UIActivityViewController使用内部活动作为TTOpenInAppActivity – Prashanth 2014-11-15 08:32:11

0

我遇到了这个与UIActivityViewController,传递的NSData项目表示PNG图像的字典时。

我能够通过在activityViewControllerPlaceholderItem:方法中将NSData对象转换为UIImage实例来加快操作工作表的渲染速度。

- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController { 
    NSMutableDictionary *itemPlaceholders = [NSMutableDictionary dictionary]; 

    [self.items enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSData *obj, BOOL *stop) { 
     UIImage *placeholderImage = [UIImage imageWithData:obj scale:.5]; 
     [itemPlaceholders setObject:placeholderImage forKey:key]; 
    }]; 

    return itemPlaceholders; 
} 
3

UIActivityViewController是iOS的8非常快但是您无法打开图像在其他第三方应用程序,如Instagram的,Vintiqu,等等。

另外,presentOpenInMenuFromRect在iOS 8(iOS 8.0.2中)中的速度要比presentOptionsMenuFromRect快得多。 但是,presentOpenInMenuFromRect不显示共享操作。

我想在共享视图中为用户提供“保存图像,分配给联系人,复印,打印......”。 所以,我目前的解决方法就是如下,:(

if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) { 
     [self.udic presentOpenInMenuFromRect:CGRectMake(self.view.frame.size.width/2 - 49/2, self.view.frame.size.height-49, 49, 49) inView:self.view animated:YES]; 
    } else { 
     [self.udic presentOptionsMenuFromRect:CGRectMake(self.view.frame.size.width/2 - 49/2, self.view.frame.size.height-49, 49, 49) inView:self.view animated:YES]; 
    } 
+0

你回答的问题是presentOpenInMenuFromRect没有显示邮件,空投和iMessage等选项。 – Prashanth 2014-11-15 08:29:50

1

简单的解决方案:保持UIDocumentInteractionController作为视图控制器变量(属性或者实例变量)和Init这里面viewDidLoad(在我的情况我初始化它没有任何如果你想打开的fileURL是动态变化的,只需在提交之前改变UIDocumentInteractionController.URL属性。