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)
                }
            }
        }
  • 相关阅读:
    字符串系列——Immediate Decodability
    Java I/O流操作(四)对象的序列化
    table自动拉伸在chrome与IE中的区别
    【web开发】spring+hibernate4支持中文排序
    SQL批量重命名中文字段名为对应拼音首字母字段名脚本
    Hibernate执行查询后又立马执行了更新(defaultaccess)
    上传图片之上传前预览图片
    挖掘FPTree
    Linux下Json库的编译及代码测试
    C语言中的位运算和逻辑运算
  • 原文地址:https://www.cnblogs.com/crash-wu/p/4950382.html
Copyright © 2011-2022 走看看