2013-10-12 116 views
2

我用下面的代碼與iOS 6 SDK實現UIActivityViewController:UIActivityViewController在iOS中7缺少選項

-(IBAction)Share:(id)sender 
{  
    NSArray *activityItems = @[self.title, urlString]; 
    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; 

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


    [activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) 
    { 
     NSLog(@"Activity = %@",activityType); 
     NSLog(@"Completed Status = %d",completed); 

     if (completed) 
     { 
      UIAlertView *objalert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Successfully Shared" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
      [objalert show]; 
      objalert = nil; 
     } else 
     { 
      UIAlertView *objalert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Unable To Share" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
      [objalert show]; 
      objalert = nil; 
     } 
    }]; 
} 

在IOS 7上面的代碼是給我以下輸出:

ios share facebook twitter uoactivityviewcontroller

此前在分享表中沒有Facebook和Twitter,但我在Settings和Facebook和Twitter上都登錄了這兩個應用程序並開始出現。

問題:貝洛線,只有COPY和其他像BOOKMARK,添加到讀取列表,添加到HOMESCREEN,打印和AirDrop按鈕不顯示。我能做些什麼來帶來這些?謝謝!

更新:我已經添加了打印按鈕通過使用下面的一個答案,我怎麼能添加其餘的?

回答

4

書籤,添加到閱讀列表和添加到主屏幕僅在safari中可用,除非您自己定義它們。要添加這些按鈕,您需要創建一個applicationActivitiesNSArray,爲各種服務填充UIActivity對象。您可以將此數組傳遞給initWithActivityItems:applicationActivities:UIActivityViewController方法(您爲此參數傳遞nil)。

+0

你可以用添加所有這些代碼更新你的答案嗎?我通過從這個問題的另一個答案中獲得幫助,添加了打印按鈕。謝謝! – AJ112

+0

@ AJ112當你按照@ArkadiuszHolko的答案時,會自動添加到閱讀清單。這也可能會添加「添加到主屏幕」,但我不確定。這些分享選項可能只在Safari瀏覽器中可用。你應該可以用'NSURL','NSString'或許多其他數據類型(比如圖像)填充'activityItems',然後其他選項就會出現在菜單中。 –

+0

好的,我已經使用了這個答案,並且「添加到閱讀列表」已經出現。打印也與這個問題上的其他答案。只有書籤和添加到主屏幕。我怎樣才能帶上這些?謝謝! – AJ112

1

當您需要將元素視爲URL時,您應該使用NSURL對象而不是NSString。替換:

NSArray *activityItems = @[self.title, urlString]; 

NSArray *activityItems = @[self.title, [NSURL URLWithString:urlString]]; 

然後按照@Santa克勞斯的建議,如果你想比Add to Reading List其他元素是可見的。

2

您應該使用UISimpleTextPrintFormatter顯示PRINT:

UISimpleTextPrintFormatter *printData = [[UISimpleTextPrintFormatter alloc] 
              initWithText:self.title]; 
NSArray *activityItems = @[self.title, printData]; 

關注@Arkadiusz Holko和@Santa克勞斯回答添加其他功能。

+0

好吧我添加了打印按鈕與您提供的代碼。我怎樣才能補充其餘的?你能更新你的答案嗎?謝謝! – AJ112

+0

將UIActivityTypeAddToReadingList添加到數組 – LMVogel