zoukankan      html  css  js  c++  java
  • iOS9 系统分享调用(UIActivityViewController)

    昨天有网友说我写的那段系统分享代码在iOS9上有warning,看下了原来ios8之后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)
                }
            }
        }
  • 相关阅读:
    delphi datetimepicker 修改时间无效问题
    C#写入文件
    C# winform中listview排序
    C/C++,python,java,C#月经贴问题
    Redis Sentinel 原理简单介绍
    JVM垃圾收集 知识汇总
    Java HotSpot VM Options
    Spring三级缓存解决循环依赖
    Markdown基础用法
    join示例分析
  • 原文地址:https://www.cnblogs.com/crash-wu/p/4950382.html
Copyright © 2011-2022 走看看