iOS開發(fā)之UIActivityViewController

我這里需要的功能是菜單長按點擊共享,彈出UIActivityViewController,選中我的APP,把選中的文字保存到后臺。

代碼如下

NSString *Content=NSLocalizedString(@"在任何地方長按選中文字后點擊“共享”,就可以收藏你選中的句子到XX,隨時可會看想法", nil);

? ? NSString *string=[Content substringWithRange:self.contentLa1.selectedRange];

? ? NSArray*urls=@[string];

? ? self.contentLa1.selectedRange=NSMakeRange(0, 0);

?? //創(chuàng)建分享的類型,注意這里沒有常見的微信,朋友圈以QQ等,但是羅列完后,實際運行是相應(yīng)按鈕的,所以可以運行.

? ? UIActivityViewController *activituVC=[[UIActivityViewController alloc]initWithActivityItems:urls applicationActivities:nil];

? ? //顯示分享窗口

? ? if([activituVCrespondsToSelector:@selector(popoverPresentationController)]) {

? ? ? ? activituVC.popoverPresentationController.sourceView = self.view;

? ? }


? ? if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {//iPad

? ? ? ? UIBarButtonItem *shareBarButtonItem = self.navigationItem.leftBarButtonItem;

? ? ? ? UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activituVC];

? ? ? ? [popuppresentPopoverFromBarButtonItem:shareBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];


? ? }else{

?? ? ? [self.navigationController presentViewController:activituVC animated:YES completion:nil];

? ? }

? ? //初始化Block回調(diào)方法,此回調(diào)方法是在iOS8之后出的,代替了之前的方法

? ? UIActivityViewControllerCompletionWithItemsHandlermyBlock = ^(NSString*activityType,BOOLcompleted,NSArray*returnedItems,NSError*activityError)

? ? {

? ? ? ? NSLog(@"activityType :%@", activityType);

? ? ? ? if(completed)

? ? ? ? {

? ? ? ? ? ? if([activityTypeisEqualToString:@"com.Moutains.Copy.Copy"]) {

?? ? ? ? ? ? ? self.mainView2.hidden=NO;

? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? self.mainView2.hidden=YES;

? ? ? ? ? ? ? ? self.mainView1.hidden=YES;

? ? ? ? ? ? }

? ? ? ? }else{

? ? ? ? ? ? self.mainView2.hidden=YES;

? ? ? ? ? ? self.mainView1.hidden=YES;

? ? ? ? }

? ? };

? ? // 初始化completionHandler,當post結(jié)束之后(無論是done還是cancell)該blog都會被調(diào)用

? ? activituVC.completionWithItemsHandler = myBlock;

這里要注意的是:iPad設(shè)備中的UIActivityViewController一定要通過UIPopoverController彈起,不然會崩潰

判斷設(shè)備是否是iPad

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {//iPad

? ? ? ? UIBarButtonItem *shareBarButtonItem = self.navigationItem.leftBarButtonItem;

? ? ? ? UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activituVC];

? ? ? ? [popuppresentPopoverFromBarButtonItem:shareBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];


? ? }else{

?? ? ? [self.navigationController presentViewController:activituVC animated:YES completion:nil];

? ? }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容