iOS 9システム共有コール(UIActivityView Control)
3757 ワード
サルオリジナル、転載を歓迎します.転載はCocos 2 Der-CSDNから転載して、ありがとうございます!原文住所:http://blog.csdn.net/cocos2der/article/details/49615109
昨日、あるネットユーザーは私が書いたシステム共有コードがiOS 9にwarningがあると言っていました.ios 8を見た後、UIPopoverControllerは廃棄されました.新しく追加されたUIPopoverPresentationControllerは、PopViewを制御する上でより簡単で使いやすい.
次は私が修正したコードです.
1.app内でサブビューで他のappプレビューを開き、6.0以上しかサポートしていない
openAppWithIdentifier(appId: String)
2.テキスト画像情報を共有し、ipad上でsourceViewをフォーカスして選択ビューをポップアップ
share(textToShare: String, url: String, image: UIImage, sourceView: UIView)
昨日、あるネットユーザーは私が書いたシステム共有コードがiOS 9にwarningがあると言っていました.ios 8を見た後、UIPopoverControllerは廃棄されました.新しく追加されたUIPopoverPresentationControllerは、PopViewを制御する上でより簡単で使いやすい.
次は私が修正したコードです.
1.app内でサブビューで他のappプレビューを開き、6.0以上しかサポートしていない
openAppWithIdentifier(appId: String)
2.テキスト画像情報を共有し、ipad上でsourceViewをフォーカスして選択ビューをポップアップ
share(textToShare: String, url: String, image: UIImage, sourceView: UIView)
/// app app , 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 sourceView
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)
}
}
}