UIActivityViewController使用

UIActivityViewController

在使用了QQ、微信等的原生與第三方分享SDK之后,我更喜歡iOS自帶分享框架UIActivityViewController,UIActivityViewController繼承自UIViewController,簡直不能更加便捷簡單了,也不用去申請QQ、微信(每年¥300)等的key與id了,好了下面就來看UIActivityViewController的基本用法,自定義有空再寫。一定要記得判斷iPad環(huán)境,不然在iPad上直接present要crash,且crash原因會(huì)是UIPopoverPresentationController (<_UIAlertControllerActionSheetRegularPresentationController: 0x7fce54d70b50>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.這就需要你判斷為iPad環(huán)境時(shí)需要pop,加上popoverPresentationController.sourceView就好了。

NSString *textToShare = @"我就是喜歡踩坑呢,咋的了。生活不止眼前的茍且,還有翔和未來的茍且。";
UIImage *imageShare = [UIImage imageNamed:@"這兒放你自己的圖片"];
NSURL *urlShare = [NSURL URLWithString:@"http://www.itdecent.cn/u/9ab932a98604"];
NSArray *activityItems = @[textShare, imageShare, urlShare];
UIActivityViewController *actVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
//下面的excludedActivityTypes填寫你需要剔除的(比如打印UIActivityTypePrint,短信UIActivityTypeMessage),不寫excludedActivityTypes這一行即使用系統(tǒng)默認(rèn)的,好了,我們來看一下excludedActivityTypes的所有值。

UIKIT_EXTERN NSString *const UIActivityTypePostToFacebook     NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;    //發(fā)送到Facebook   
UIKIT_EXTERN NSString *const UIActivityTypePostToTwitter      NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;    //發(fā)送到Twitter
UIKIT_EXTERN NSString *const UIActivityTypePostToWeibo        NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;    //發(fā)送到新浪微博
UIKIT_EXTERN NSString *const UIActivityTypeMessage            NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;    //短信
UIKIT_EXTERN NSString *const UIActivityTypeMail               NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;    //郵件
UIKIT_EXTERN NSString *const UIActivityTypePrint              NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;    //打印
UIKIT_EXTERN NSString *const UIActivityTypeCopyToPasteboard   NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;    //拷貝
UIKIT_EXTERN NSString *const UIActivityTypeAssignToContact    NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;    //指定給聯(lián)系人
UIKIT_EXTERN NSString *const UIActivityTypeSaveToCameraRoll   NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;    //保存至相機(jī)膠卷
UIKIT_EXTERN NSString *const UIActivityTypeAddToReadingList   NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;    //添加至閱讀列表
UIKIT_EXTERN NSString *const UIActivityTypePostToFlickr       NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;    //發(fā)送到Flickr(雅虎旗下圖片分享網(wǎng)站)
UIKIT_EXTERN NSString *const UIActivityTypePostToVimeo        NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;    //發(fā)送到Vimeo
UIKIT_EXTERN NSString *const UIActivityTypePostToTencentWeibo NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;    //發(fā)送到騰訊微博
UIKIT_EXTERN NSString *const UIActivityTypeAirDrop            NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;    //AirDrop
UIKIT_EXTERN NSString *const UIActivityTypeOpenInIBooks       NS_AVAILABLE_IOS(9_0) __TVOS_PROHIBITED;    //在iBooks中打開

actVC.excludedActivityTypes = @[UIActivityTypeMessage,UIActivityTypePrint,UIActivityTypeSaveToCameraRoll,UIActivityTypeAddToReadingList,UIActivityTypePostToFlickr,UIActivityTypePostToVimeo,UIActivityTypeAirDrop];
//這兒一定要做iPhone與iPad的判斷,因?yàn)檫@兒只有iPhone可以present,iPad需pop,所以這兒actVC.popoverPresentationController.sourceView = self.view;在iPad下必須有,不然iPad會(huì)crash,self.view你可以換成任何view,你可以理解為彈出的窗需要找個(gè)依托。
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    actVC.popoverPresentationController.sourceView = self.view;
    [self presentViewController:actVC animated:YES completion:nil];
} else {
    [self presentViewController:actVC animated:YES completion:nil];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 蘋果從iOS6開始,提供了一個(gè)活動(dòng)列表視圖,為分享和操作數(shù)據(jù)提供了一個(gè)統(tǒng)一的服務(wù)接口,通過UIActivityVi...
    z4ywzrq閱讀 2,741評論 0 2
  • 寫在之前的大篇廢話 研究adaptivePresentationStyleForPresentationContr...
    金風(fēng)細(xì)細(xì)閱讀 1,060評論 1 1
  • 命和運(yùn)的不同:命是不可改變的,運(yùn)是可以改變的。命是車,運(yùn)是路。命運(yùn)如舟與水。路影響車,水影響舟。先天的出生日期影響...
    彥子八毛國畫閱讀 525評論 0 3
  • 有些聽過的語句,會(huì)在某個(gè)時(shí)候飄然降臨……正如過去的事已經(jīng)過去,但有時(shí)想起來,就覺會(huì)得自己像在漆黑的夜里浮浮沉沉……...
    道安瀾閱讀 250評論 0 0
  • 1、新建兩個(gè)文件夾,一個(gè)是放素材圖片,我這里找了49個(gè)張藝興的圖片,另一個(gè)空文件夾。 2、用PS隨便打開一張圖,在...
    WHealer閱讀 2,984評論 0 0

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