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)
                }
            }
        }
  • 相关阅读:
    音标,口型,舌位对照表:适合已有一定英语基础的人重新回顾音标发音,在不断的练习中让自己的发音更准确,口型更标准。
    c++友元函数和友元类
    经典MFC界面和Ribbon界面框架对比(单文档为例)
    QEM三维模型简化算法
    VC6和VS2008中C++编译器差异
    VS操作技巧
    msvcrt.lib和LIBCD.lib链接冲突
    二叉树遍历算法
    IE/QQ使用代理上网
    Google Map街景(红蓝立体)
  • 原文地址:https://www.cnblogs.com/crash-wu/p/4950382.html
Copyright © 2011-2022 走看看