2014-08-27 73 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屬性。