2014-02-18 60 views
4

我回顧了一堆帖子在這裏,許多在線教程/示例代碼,我很難過。在我的應用程序中,我沒有任何問題顯示iOS7原生提供的UIActivityController以及適用於我的應用程序(AirDrop和郵件)的共享選項。iOS 7 UIActivityViewController電子郵件附件

我遇到的具體問題是當用戶選擇通過郵件共享選項時,將保存的文檔附加到電子郵件中。郵件正文被設置爲文本,但附件是MIA。相關代碼是:

//生成要共享的XML文件以顯示當前顯示的記錄... NSURL * url = [self createShareFile];

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[@"Data shared from my app.", url] applicationActivities:nil]; 

// Filter out the sharing methods we're not interested in.... 
controller.excludedActivityTypes = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook, 
           UIActivityTypePostToWeibo, 
           UIActivityTypeMessage, 
           UIActivityTypePrint, UIActivityTypeCopyToPasteboard, 
           UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, 
           UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr, 
           UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo]; 

// Now display the sharing view controller. 
[self presentViewController:controller animated:YES completion:nil]; 

我錯過了什麼?我的文件正在正確創建,內容正確,並且NSURL對象包含文件的正確路徑。

謝謝!

回答

6

問題解決了.....

發表在我原來的帖子中的代碼是100%準確的。這個問題最終在我構建NSURL的方式是在我createShareFile方法的返回:

不正確的(原始的方式):

return [NSURL URLWithString:[docFile stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

正確方法:

return [NSURL fileURLWithPath:docFile]; 

只要我修正了這個問題,它開始工作,即使使用我的自定義文件類型。

+0

你救了我的一天!非常感謝你分享這個! –