iOS9 系統(tǒng)分享調(diào)用之UIActivityViewController
UIActivityViewController類是一個(gè)標(biāo)準(zhǔn)的view controller,通個(gè)使用這個(gè)controller,你的應(yīng)用程序就可以提供各種服務(wù)。
系統(tǒng)提供了一些通用的標(biāo)準(zhǔn)服務(wù),例如拷貝內(nèi)容至粘貼板、發(fā)布一個(gè)公告至社交網(wǎng)、通過(guò)email或者SMS發(fā)送內(nèi)容。
應(yīng)用程序同樣可以自定義服務(wù)。(我的微信分享就屬于自定義服務(wù), 之后將會(huì)寫一篇教程介紹)
你的應(yīng)用程序負(fù)責(zé)配置、展現(xiàn)和解雇這個(gè)view controller。
viewcontroller的配置涉及到viewcontroller需要用到的具體的數(shù)據(jù)對(duì)象。(也可以指定自定義服務(wù)列表,讓應(yīng)用程序支持這些服務(wù))。
在展現(xiàn)view controller時(shí),必須根據(jù)當(dāng)前的設(shè)備類型,使用適當(dāng)?shù)姆椒?。在iPad上,必須通過(guò)popover來(lái)展現(xiàn)view controller。在iPhone和iPodtouch上,必須以模態(tài)的方式展現(xiàn)。
昨天有網(wǎng)友說(shuō)我寫的那段系統(tǒng)分享代碼在iOS9上有warning,看下了原來(lái)ios8之后UIPopoverController被廢棄了。新增加的UIPopoverPresentationController在控制PopView上更簡(jiǎn)單好用。
下面是我修改之后的代碼:
1. 在app內(nèi)以子視圖方式打開(kāi)其他app預(yù)覽,僅支持6.0以上
openAppWithIdentifier(appId: String)
2. 分享文字圖片信息,ipad上會(huì)以sourceView為焦點(diǎn)彈出選擇視圖
share(textToShare: String, url: String, image: UIImage, sourceView: UIView) /// 在app內(nèi)以子視圖方式打開(kāi)其他app預(yù)覽,僅支持6.0以上 private func openAppWithIdentifier(appId: String) { if let _ = NSClassFromString("SKStoreProductViewController") { let storeProductViewController = SKStoreProductViewController() storeProductViewController.delegate = self let dict = NSDictionary(object:appId, forKey:SKStoreProductParameterITunesItemIdentifier) as! [String : AnyObject] storeProductViewController.loadProductWithParameters(dict, completionBlock: { (result, error) -> Void in // self.presentViewController(storeProductViewController, animated: true, completion: nil) }) self.presentViewController(storeProductViewController, animated: true, completion: nil) }else { UIApplication.sharedApplication().openURL(NSURL(string: "itms-apps://itunes.apple.com/app/id\(appId)")!) } } /// 分享文字圖片信息,ipad上會(huì)以sourceView為焦點(diǎn)彈出選擇視圖 private func share(textToShare: String, url: String, image: UIImage, sourceView: UIView) { let objectsToShare = [textToShare, url, image] let activityViewController = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil) if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Phone { self.presentViewController(activityViewController, animated: true, completion: nil) }else { let popover = activityViewController.popoverPresentationController if (popover != nil){ popover?.sourceView = sourceView popover?.sourceRect = sourceView.frame popover?.permittedArrowDirections = UIPopoverArrowDirection.Any self.presentViewController(activityViewController, animated: true, completion: nil) } } }
- iOS開(kāi)發(fā)中ViewController的頁(yè)面跳轉(zhuǎn)和彈出模態(tài)
- iOS開(kāi)發(fā)中WebView的基本使用方法簡(jiǎn)介
- iOS開(kāi)發(fā)中使用UIScrollView實(shí)現(xiàn)圖片輪播和點(diǎn)擊加載
- iOS開(kāi)發(fā)中的ViewController轉(zhuǎn)場(chǎng)切換效果實(shí)現(xiàn)簡(jiǎn)介
- IOS中UIWebView加載Loading的實(shí)現(xiàn)方法
- IOS中使用UIWebView 加載網(wǎng)頁(yè)、文件、 html的方法
- ionic在開(kāi)發(fā)ios系統(tǒng)微信時(shí)鍵盤擋住輸入框的解決方法(鍵盤彈出問(wèn)題)
- 解決ios模擬器不能彈出鍵盤問(wèn)題的方法
- android底部彈出iOS7風(fēng)格對(duì)話選項(xiàng)框(QQ對(duì)話框)--第三方開(kāi)源之IOS_Dialog_Library
- iOS仿簡(jiǎn)書、淘寶等App的View彈出效果
相關(guān)文章
iOS實(shí)現(xiàn)手動(dòng)和自動(dòng)屏幕旋轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)手動(dòng)和自動(dòng)屏幕旋轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07iOS左右滑動(dòng)標(biāo)簽頁(yè)導(dǎo)航的設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了iOS左右滑動(dòng)標(biāo)簽頁(yè)導(dǎo)航的設(shè)計(jì)思路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06iOS如何跳轉(zhuǎn)到App Store下載評(píng)分頁(yè)面示例代碼
最近在工作中遇到一個(gè)需求,需要跳轉(zhuǎn)到App Store下載評(píng)分,通過(guò)查找相關(guān)的資料最終解決了,下面這篇文章主要給大家介紹了關(guān)于iOS如何跳轉(zhuǎn)到App Store下載評(píng)分頁(yè)面的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-12-12ios開(kāi)發(fā)Flutter之?dāng)?shù)據(jù)存儲(chǔ)
這篇文章主要為大家介紹了ios開(kāi)發(fā)Flutter之?dāng)?shù)據(jù)存儲(chǔ)的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07iOS動(dòng)畫教你編寫Slack的Loading動(dòng)畫進(jìn)階篇
這篇文章主要為大家進(jìn)一步詳細(xì)介紹了iOS動(dòng)畫教你編寫Slack的Loading動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09iOS利用MJRefresh實(shí)現(xiàn)自定義刷新動(dòng)畫效果
本文主要介紹iOS 利用MJRefresh實(shí)現(xiàn)自定義動(dòng)畫的上拉刷新下拉加載效果,要想實(shí)現(xiàn)此功能,首先得有一套load的圖片數(shù)組。接下來(lái)通過(guò)本文給大家詳解介紹實(shí)現(xiàn)過(guò)程2017-02-02