iOS9 系统分享调用之UIActivityViewController

 更新时间:2015年11月03日 14:34:04   投稿:mrr  
UIActivityViewController类是一个标准的view controller,通个使用这个controller,你的应用程序就可以提供各种服务。本文给大家介绍iOS9 系统分享调用之UIActivityViewController,感兴趣的朋友一起学习吧

UIActivityViewController类是一个标准的view controller,通个使用这个controller,你的应用程序就可以提供各种服务。

系统提供了一些通用的标准服务,例如拷贝内容至粘贴板、发布一个公告至社交网、通过email或者SMS发送内容。

应用程序同样可以自定义服务。(我的微信分享就属于自定义服务, 之后将会写一篇教程介绍)

你的应用程序负责配置、展现和解雇这个view controller。

viewcontroller的配置涉及到viewcontroller需要用到的具体的数据对象。(也可以指定自定义服务列表,让应用程序支持这些服务)。

在展现view controller时,必须根据当前的设备类型,使用适当的方法。在iPad上,必须通过popover来展现view controller。在iPhone和iPodtouch上,必须以模态的方式展现。

昨天有网友说我写的那段系统分享代码在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)
  }
 }
 }

相关文章

  • 详解IOS图层转场动画

    详解IOS图层转场动画

    这篇文章主要为大家详细介绍了IOS图层转场动画, CATransition类实现层的转场动画,能够为层提供移出屏幕和移入屏幕的动画效果,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • iOS 使用Moya网络请求的实现方法

    iOS 使用Moya网络请求的实现方法

    这篇文章主要介绍了iOS 使用Moya网络请求的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • iOS 获取当前的ViewController的方法

    iOS 获取当前的ViewController的方法

    本篇文章主要介绍了iOS 获取当前的ViewController的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • iOS超出父控件范围无法点击问题解决

    iOS超出父控件范围无法点击问题解决

    这篇文章主要介绍了iOS超出父控件范围无法点击问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 通过一行代码搞定UITextField的输入格式限制

    通过一行代码搞定UITextField的输入格式限制

    这篇文章主要给大家介绍了如何通过一行代码搞定UITextField的输入格式限制的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • iOS使用音频处理框架The Amazing Audio Engine实现音频录制播放

    iOS使用音频处理框架The Amazing Audio Engine实现音频录制播放

    这篇文章主要为大家详细介绍了iOS使用音频处理框架The Amazing Audio Engine实现音频录制播放,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • iOS 对plist文件进行读写,增删改查的实例

    iOS 对plist文件进行读写,增删改查的实例

    下面小编就为大家带来一篇iOS 对plist文件进行读写,增删改查的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • 通过源码分析iOS中的深拷贝与浅拷贝

    通过源码分析iOS中的深拷贝与浅拷贝

    这篇文章主要给大家介绍了如何通过源码分析iOS中的深拷贝与浅拷贝的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • iOS开发技巧之状态栏字体颜色的设置方法

    iOS开发技巧之状态栏字体颜色的设置方法

    有时候我们需要根据不同的背景修改状态栏字体的颜色,下面这篇文章主要给大家介绍了关于iOS开发技巧之状态栏字体颜色的设置方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧
    2018-08-08
  • iOS应用中使用AsyncSocket库处理Socket通信的用法讲解

    iOS应用中使用AsyncSocket库处理Socket通信的用法讲解

    这篇文章主要介绍了iOS应用中使用AsyncSocket库处理Socket通信的用法讲解,AsyncSocket同时支持TCP和UDP,文中展示了其建立断开连接及发送接收消息的操作,very好用,需要的朋友可以参考下
    2016-05-05

最新评论